From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey G Subject: Re: [RFC PATCH 07/12] hvmloader: allocate MMCONFIG area in the MMIO hole + minor code refactoring Date: Wed, 21 Mar 2018 10:58:40 +1000 Message-ID: <20180321105840.00004698@gmail.com> References: <62c7a3037bb9f5631542f635dc36ae3338c7bf47.1520867741.git.x1917x@gmail.com> <20180319155802.immvsgqttrs3yezg@MacBook-Pro-de-Roger.local> <20180320054922.00005669@gmail.com> <20180320085048.orjv67qtwhe35ntl@MacBook-Pro-de-Roger.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1eyS5e-0008GQ-H8 for xen-devel@lists.xenproject.org; Wed, 21 Mar 2018 00:58:54 +0000 Received: by mail-lf0-x230.google.com with SMTP id p142-v6so5397166lfd.6 for ; Tue, 20 Mar 2018 17:58:52 -0700 (PDT) In-Reply-To: <20180320085048.orjv67qtwhe35ntl@MacBook-Pro-de-Roger.local> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Roger Pau =?iso-8859-1?Q?Monn=E9?= Cc: Wei Liu , Andrew Cooper , Ian Jackson , Paul Durrant , Jan Beulich , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gVHVlLCAyMCBNYXIgMjAxOCAwODo1MDo0OCArMDAwMApSb2dlciBQYXUgTW9ubsOpIDxyb2dl ci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6Cgo+T24gVHVlLCBNYXIgMjAsIDIwMTggYXQgMDU6NDk6 MjJBTSArMTAwMCwgQWxleGV5IEcgd3JvdGU6Cj4+IE9uIE1vbiwgMTkgTWFyIDIwMTggMTU6NTg6 MDIgKzAwMDAKPj4gUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3Rl Ogo+PiAgIAo+PiA+T24gVHVlLCBNYXIgMTMsIDIwMTggYXQgMDQ6MzM6NTJBTSArMTAwMCwgQWxl eGV5IEdlcmFzaW1lbmtvCj4+ID53cm90ZTogIAo+PiA+PiBNdWNoIGxpa2Ugbm9ybWFsIFBDSSBC QVJzIG9yIG90aGVyIGNoaXBzZXQtc3BlY2lmaWMgbWVtb3J5LW1hcHBlZAo+PiA+PiByZXNvdXJj ZXMsIE1NQ09ORklHIGFyZWEgbmVlZHMgc3BhY2UgaW4gTU1JTyBob2xlLCBzbyB3ZSBtdXN0Cj4+ ID4+IGFsbG9jYXRlIGl0IG1hbnVhbGx5Lgo+PiA+PiAKPj4gPj4gVGhlIGFjdHVhbCBNTUNPTkZJ RyBzaXplIGRlcGVuZHMgb24gYSBudW1iZXIgb2YgUENJIGJ1c2VzCj4+ID4+IGF2YWlsYWJsZSB3 aGljaCBzaG91bGQgYmUgY292ZXJlZCBieSBFQ0FNLiBQb3NzaWJsZSBvcHRpb25zIGFyZQo+PiA+ PiA2NE1CLCAxMjhNQiBhbmQgMjU2TUIuIEFzIHdlIGFyZSBsaW1pdGVkIHRvIHRoZSBidXMgMCBj dXJyZW50bHksCj4+ID4+IHRodXMgdXNpbmcgbG93ZXN0IHBvc3NpYmxlIHNldHRpbmcgKDY0TUIp LCAjZGVmaW5lZCB2aWEKPj4gPj4gUENJX01BWF9NQ0ZHX0JVU0VTIGluIGh2bWxvYWRlci9jb25m aWcuaC4gV2hlbiBtdWx0aXBsZSBQQ0kgYnVzZXMKPj4gPj4gc3VwcG9ydCBmb3IgWGVuIHdpbGwg YmUgaW1wbGVtZW50ZWQsIFBDSV9NQVhfTUNGR19CVVNFUyBtYXkgYmUKPj4gPj4gY2hhbmdlZCB0 byBjYWxjdWxhdGlvbiBvZiB0aGUgbnVtYmVyIG9mIGJ1c2VzIGFjY29yZGluZyB0bwo+PiA+PiBy ZXN1bHRzIG9mIHRoZSBQQ0kgZGV2aWNlcyBlbnVtZXJhdGlvbi4KPj4gPj4gCj4+ID4+IFRoZSB3 YXkgdG8gYWxsb2NhdGUgTU1DT05GSUcgcmFuZ2UgaW4gTU1JTyBob2xlIGlzIHNpbWlsYXIgdG8g aG93Cj4+ID4+IG90aGVyIFBDSSBCQVJzIGFyZSBhbGxvY2F0ZWQuIFRoZSBwYXRjaCBleHRlbmRz ICdiYXJzJyBzdHJ1Y3R1cmUKPj4gPj4gdG8gbWFrZSBpdCB1bml2ZXJzYWwgZm9yIGFueSBhcmJp dHJhcnkgQkFSIHR5cGUgLS0gZWl0aGVyIElPLAo+PiA+PiBNTUlPLCBST00gb3IgYSBjaGlwc2V0 LXNwZWNpZmljIHJlc291cmNlLiAgICAKPj4gPgo+PiA+SSdtIG5vdCBzdXJlIHRoaXMgaXMgZnVs bHkgY29ycmVjdC4gVGhlIElPUkVRIGludGVyZmFjZSBjYW4KPj4gPmRpZmZlcmVudGlhdGUgUENJ IGRldmljZXMgYW5kIGZvcndhcmQgY29uZmlnIHNwYWNlIGFjY2Vzc2VzIHRvCj4+ID5kaWZmZXJl bnQgZW11bGF0b3JzIChzZWUgSU9SRVFfVFlQRV9QQ0lfQ09ORklHKS4gV2l0aCB0aGlzIGNoYW5n ZQo+PiA+eW91IHdpbGwgZm9yd2FyZCBhbGwgTUNGRyBhY2Nlc3NlcyB0byBRRU1VLCB3aGljaCB3 aWxsIGxpa2VseSBiZQo+PiA+d3JvbmcgaWYgdGhlcmUgYXJlIG11bHRpcGxlIFBDSS1kZXZpY2Ug ZW11bGF0b3JzIGZvciB0aGUgc2FtZQo+PiA+ZG9tYWluLgo+PiA+Cj4+ID5JZTogQUZBSUNUIFhl biBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBNQ0ZHIGVtdWxhdGlvbiBhbmQgZGV0ZWN0Cj4+ID5h Y2Nlc3NlcyB0byBpdCBpbiBvcmRlciB0byBmb3J3YXJkIHRoZW0gdG8gdGhlIHJpZ2h0IGVtdWxh dG9ycy4KPj4gPgo+PiA+QWRkaW5nIFBhdWwgd2hvIGtub3dzIG1vcmUgYWJvdXQgYWxsIHRoaXMu ICAKPj4gCj4+IEluIHdoaWNoIHVzZSBjYXNlcyBtdWx0aXBsZSBQQ0ktZGV2aWNlIGVtdWxhdG9y cyBhcmUgdXNlZCBmb3IgYQo+PiBzaW5nbGUgSFZNIGRvbWFpbj8gSXMgaXQgYSBwcm9wcmlldGFy eSBzZXR1cD8gIAo+Cj5MaWtlbHkuIEkgdGhpbmsgWGVuR1QgbWlnaHQgYmUgdXNpbmcgaXQuIEl0 J3MgYSBmZWF0dXJlIG9mIHRoZSBJT1JFUQo+aW1wbGVtZW50YXRpb24gaW4gWGVuLgoKQWNjb3Jk aW5nIHRvIHB1YmxpYyBzbGlkZXMgZm9yIHRoZSBmZWF0dXJlLCBib3RoIFBDSSBjb25mIGFuZCBN TUlPCmFjY2Vzc2VzIGNhbiBiZSByb3V0ZWQgdG8gdGhlIGRlc2lnbmF0ZWQgZGV2aWNlIG1vZGVs LiBJdCBsb29rcyBsaWtlCmZvciB0aGlzIHBhcnRpY3VsYXIgc2V0dXAgaXQgZG9lc24ndCByZWFs bHkgbWF0dGVyIHdoaWNoIHBhcnRpY3VsYXIKaW9yZXEgdHlwZSBtdXN0IGJlIHVzZWQgZm9yIE1N Q09ORklHIGFjY2Vzc2VzIC0tIGVpdGhlcgpJT1JFUV9UWVBFX1BDSV9DT05GSUcgb3IgSU9SRVFf VFlQRV9DT1BZIChNTUlPIGFjY2Vzc2VzKSBzaG91bGQgYmUKYWNjZXB0YWJsZS4gVGhlIG9ubHkg dGhpbmcgd2hpY2ggbWF0dGVycyBpcyBpb3JlcSByb3V0aW5nIGl0c2VsZiAtLQptYWtpbmcgZGVj aXNpb25zIHRvIHdoaWNoIGRldmljZSBtb2RlbCB0aGUgUENJIGNvbmYvTU1JTyBpb3JlcSBzaG91 bGQKYmUgc2VudC4KCj5UcmFkaXRpb25hbCBQQ0kgY29uZmlnIHNwYWNlIGFjY2Vzc2VzIGFyZSBu b3QgSU8gcG9ydCBzcGFjZSBhY2Nlc3Nlcy4KCihhc3N1bWluZyAnbm90JyBtaXN0eXBlZCBoZXJl KQoKPlRoZSBJT1JFUSBjb2RlIGluIFhlbiBkZXRlY3RzIGFjY2Vzc2VzIHRvIHBvcnRzIDB4Y2Y4 LzB4Y2ZjIGFuZCBJT1JFUQo+c2VydmVycyBjYW4gcmVnaXN0ZXIgZGV2aWNlcyB0aGV5IHdvdWxk IGxpa2UgdG8gcmVjZWl2ZSBjb25maWd1cmF0aW9uCj5zcGFjZSBhY2Nlc3NlcyBmb3IuIFFFTVUg aXMgYWxyZWFkeSBtYWtpbmcgdXNlIG9mIHRoaXMsIHNlZSBmb3IKClRoYXQncyBvbmUgb2YgdGhl IHJlYXNvbnMgd2h5IGN1cnJlbnQgSU9SRVFfVFlQRV9QQ0lfQ09ORklHCmltcGxlbWVudGF0aW9u IGlzIGEgYml0IGluY29udmVuaWVudCBmb3IgTU1DT05GSUcgTU1JTyBhY2Nlc3NlcyAtLSBpdCdz CnRvbyBtdWNoIENGOGgvQ0ZDaC1jZW50cmljIGluIGl0cyBpbXBsZW1lbnRhdGlvbiwgbWlnaHQg YmUgcGFpbmZ1bCB0bwpjaGFuZ2Ugc29tZXRoaW5nIGluIHRoZSBjb2RlIHdoaWNoIHdhcyBpbnRl bmRlZCBmb3IgQ0Y4aC9DRkNoIGhhbmRsaW5nCihhbmQgbm90IGZvciBNTUlPIHByb2Nlc3Npbmcp LgoKPmV4YW1wbGUgeGVuX21hcF9wY2lkZXYgaW4gdGhlIFFFTVUgY29kZS4KPgo+QnkgdHJlYXRp bmcgTUNGRyBhY2Nlc3NlcyBhcyBNTUlPIHlvdSBhcmUgYnlwYXNzaW5nIHRoZSBJT1JFUSBQQ0kK PmxheWVyLCBhbmQgdGh1cyBhIElPUkVRIHNlcnZlciBjb3VsZCByZWdpc3RlciBhIFBDSSBkZXZp Y2UgYW5kIG9ubHkKPnJlY2VpdmUgUENJIGNvbmZpZ3VyYXRpb24gYWNjZXNzZXMgZnJvbSB0aGUg SU8gcG9ydCBzcGFjZSwgd2hpbGUgTUNGRwo+YWNjZXNzZXMgd291bGQgYmUgZm9yd2FyZGVkIHNv bWV3aGVyZSBlbHNlLgoKSXQgd2lsbCBiZSBoYW5kbGVkIGJ5IElPUkVRIHRvbywganVzdCB1c2lu ZyBhIGRpZmZlcmVudCBJT1JFUSB0eXBlCihNTUlPIG9uZSkuIFRoZSBiYXNpYyBxdWVzdGlvbiBp cyB3aHkgZG8gd2UgaGF2ZSB0byBzdGljayB0byBQQ0kgY29uZgpzcGFjZSBpb3JlcXMgZm9yIGVt dWxhdGluZyBNTUlPIGFjY2Vzc2VzIHRvIE1NQ09ORklHLgoKPkkgdGhpbmsgeW91IG5lZWQgdG8g bWFrZSB0aGUgSU9SRVEgY29kZSBhd2FyZSBvZiB0aGUgTUNGRyBhcmVhIGFuZAo+WEVOX0RNT1Bf SU9fUkFOR0VfUENJIG5lZWRzIHRvIGZvcndhcmQgYm90aCBJTyBzcGFjZSBhbmQgTUNGRyBhY2Nl c3Nlcwo+dG8gdGhlIHJpZ2h0IElPUkVRIHNlcnZlci4KClJpZ2h0IG5vdyB0aGVyZSBpcyBubyB3 YXkgdG8gaW5mb3JtIFhlbiB3aGVyZSB0aGUgZW11bGF0ZWQgTU1DT05GSUcKYXJlYSBpcyBsb2Nh dGVkIGluIG9yZGVyIHRvIG1ha2UgdGhpcyBkZWNpc2lvbiwgYmFzZWQgb24gdGhlIGFkZHJlc3MK d2l0aGluIE1NQ09ORklHIHJhbmdlLiBBIG5ldyBkbW9wL2h5cGVyY2FsbCBpcyBuZWVkZWQgKHdp dGggYXJncwpzaW1pbGFyIHRvIHBjaV9tbWNmZ19yZXNlcnZlZCkgYWxvbmcgd2l0aCBpdHMgdXNh Z2UgaW4gUUVNVS4KCkknbGwgdHJ5IHRvIHN1bW1hcml6ZSB0d28gZGlmZmVyZW50IGFwcHJvYWNo ZXMgdG8gTU1DT05GSUcKaGFuZGxpbmcuIEZvciBib3RoIGFwcHJvYWNoZXMgdGhlIGZpbmFsIFBD SSBjb25maWcgaG9zdCBpbnRlcmZhY2UgZm9yIGEKcGFzc2VkIHRocm91Z2ggZGV2aWNlIGluIFFF TVUgd2lsbCByZW1haW4gc2FtZSBhcyBhdCB0aGUgbW9tZW50IC0tCnhlbl9ob3N0X3BjaV8qIGZ1 bmN0aW9ucyBpbiAvaHcveGVuLgoKCkFwcHJvYWNoICMxLiBJbmZvcm1pbmcgWGVuIGFib3V0IE1N Q09ORklHIGFyZWEgY2hhbmdlcyBhbmQgbGV0dGluZyBYZW4KdG8gdHJhbnNsYXRlIE1NSU8gYWNj ZXNzZXMgdG8gX1BDSV9DT05GSUcgaW9yZXFzOgoKMS4gUUVNVSB3aWxsIHRyYXAgYWNjZXNzZXMg dG8gUENJRVhCQVIsIGNhbGxpbmcgWGVuIHZpYSBkbW9wL2h5cGVyY2FsbAp0byBsZXQgdGhlIGxh dHRlciBrbm93IG9mIGFueSBNTUNPTkZJRyBhcmVhIGFkZHJlc3Mvc2l6ZS9zdGF0dXMgY2hhbmdl cwoKMi4gWGVuIHdpbGwgdHJhcCBNTUlPIGFjY2Vzc2VzIHRvIHRoZSBjdXJyZW50IE1NQ09ORklH IGxvY2F0aW9uIGFuZApjb252ZXJ0IG1lbW9yeSBhY2Nlc3NlcyBpbnRvIG9uZSBvciBzZXZlcmFs IF9QQ0lfQ09ORklHIGlvcmVxcyBhbmQgc2VuZAp0aGVtIHRvIGEgY2hvc2VuIGRldmljZSBtb2Rl bAoKMy4gUUVNVSB3aWxsIHJlY2VpdmUgX1BDSV9DT05GSUcgaW9yZXFzIHdpdGggU0JERiBhbmQg MTItYml0IG9mZnNldHMKaW5zaWRlIHdoaWNoIGl0IG5lZWRzIHRvIHNvbWVob3cgcGFzcyB0bwpw Y2lfaG9zdF9jb25maWdfe3JlYWQsd3JpdGV9X2NvbW1vbigpIGZvciBlbXVsYXRpb24uIEl0IG1p Z2h0IHJlcXVpcmUKZmV3IGhhY2tzIHRvIG1ha2UgdGhlIGdlYXJzIHR1cm4gKGR1ZSB0byBRRU1V IHBjaSBjb25mIHJlYWQvd3JpdGUKbW9kZWwpLgpBdCB0aGUgbW9tZW50IGVtdWxhdGVkIENGOGgv Q0ZDaCBwb3J0cyBwbGF5IGEgc3BlY2lhbCByb2xlCmluIGFsbCB0aGlzIC0tIHhlbi1odm0uYyB3 cml0ZXMgYW4gQU1ELXN0eWxlIHZhbHVlIHRvIHRoZQplbXVsYXRlZCBDRjhoIHBvcnQgInNvIHRo YXQgdGhlIGNvbmZpZyBzcGFjZSBhY2Nlc3Mgd2lsbCB0YXJnZXQgdGhlCmNvcnJlY3QgZGV2aWNl IG1vZGVsIiAocXVvdGUpLiBOb3Qgc3VyZSBhYm91dCB0aGlzIGFuZCB3aHkgaXQncyBpcwpuZWVk ZWQgaWYgWGVuIGFjdHVhbGx5IG1ha2VzIHRoZSBkZWNpc2lvbiB0byB3aGljaCBETSB0aGUgUENJ IGNvbmYKaW9yZXEgc2hvdWxkIGJlIHNlbnQuCgpPbmUgbWlub3Igbm90ZTogdGhlc2UgbmV3ICdz ZXRfbW1jb25maWdfJyBkbW9wcy9oeXBlcmNhbGxzIGhhdmUgdG8gYmUKdHJpZ2dlcmVkIGluc2lk ZSB0aGUgY2hpcHNldC1zcGVjaWZpYyBlbXVsYXRpb24gY29kZSBpbiBRRU1VIChQQ0lFWEJBUgpo YW5kbGluZyBpbiBRMzUgY2FzZSkuIElmIHRoZXJlIHdpbGwgYmUgYW5vdGhlciBtYWNoaW5lIHdo aWNoIG5lZWRzIHRvCmVtdWxhdGUgTU1DT05GSUcgY29udHJvbCBkaWZmZXJlbnRseSAtLSB3ZSBo YXZlIG5vIGNob2ljZSBidXQgdG8KaW5zZXJ0IHRoZXNlIGRtb3BzL2h5cGVyY2FsbHMgaW50byBh bm90aGVyIGNoaXBzZXQtc3BlY2lmaWMgZW11bGF0aW9uCmNvZGUgYXMgd2VsbCwgZWcuIGluc2lk ZSBIRUNCQVNFIGVtdWxhdGlvbiBjb2RlLgoKQXBwcm9hY2ggIzIuIEhhbmRsaW5nIE1NQ09ORklH IGFyZWEgaW5zaWRlIFFFTVUgdXNpbmcgdXN1YWwgTU1JTwplbXVsYXRpb246CgoxLiBRRU1VIHdp bGwgdHJhcCBhY2Nlc3NlcyB0byBQQ0lFWEJBUiAob3Igd2hhdGV2ZXIgZWxzZSBwb3NzaWJseQpz dXBwb3J0ZWQgaW4gdGhlIGZ1dHVyZSBsaWtlIEhFQ0JBU0UpLCBldmVudHVhbGx5IGFza2luZyBY ZW4gdG8gbWFwIHRoZQpNTUNPTkZJRyBNTUlPIHJhbmdlIGZvciBpb3JlcSBzZXJ2aWNpbmcganVz dCBsaWtlIGl0IGRvZXMgZm9yIGFueQpvdGhlciBlbXVsYXRlZCBNTUlPIHJhbmdlLCB2aWEgbWFw X2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcigpLiBBbGwKY2hhbmdlcyBpbiBNTUNPTkZJRyBwbGFj ZW1lbnQvc3RhdHVzIHdpbGwgbGVhZCB0byByZW1hcHBpbmcvdW5tYXBwaW5nCnRoZSBNTUlPIHJh bmdlLgoKMi4gWGVuIHdpbGwgdHJhcCBNTUlPIGFjY2Vzc2VzIHRvIHRoaXMgYXJlYSBhbmQgZm9y d2FyZCB0aGVtIHRvIFFFTVUgYXMKTU1JTyAoSU9SRVFfVFlQRV9DT1BZKSBpb3JlcXMKCjMuIFFF TVUgd2lsbCByZWNlaXZlIHRoZXNlIGFjY2Vzc2VzIGFuZCBwYXNzIHRoZW0gdG8gdGhlIGV4aXN0 aW5nCk1NQ09ORklHIGVtdWxhdGlvbiAtLSBwY2llX21tY2ZnX2RhdGFfcmVhZC93cml0ZSBoYW5k bGVycywgZmluYWxseQpyZXN1bHRpbmcgaW4gc2FtZSB4ZW5faG9zdF9wY2lfKiBmdW5jdGlvbiBj YWxscyBhcyBiZWZvcmUuCgpUaGlzIGFwcHJvYWNoIHdvcmtzICJyaWdodCBvdXQgb2YgdGhlIGJv eCIsIG5vIGNoYW5nZXMgbmVlZGVkIGZvciBlaXRoZXIKWGVuIG9yIFFFTVUuIEFzIGJvdGggX1BD SV9DT05GSUcgYW5kIE1NSU8gdHlwZSBpb3JlcXMgYXJlIHByb2Nlc3NlZCwKZWl0aGVyIG1ldGhv ZCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgUENJL2V4dGVuZGVkIGNvbmZpZyBzcGFjZSAtLQpDRjgv Q0ZDIHBvcnQgSS9PIG9yIE1NSU8gYWNjZXNzZXMgdG8gTU1DT05GSUcuCgpJT1JFUSByb3V0aW5n IGZvciBtdWx0aXBsZSBkZXZpY2UgZW11bGF0b3JzIGNhbiBiZSBzdXBwb3J0ZWQgdG9vLiBJbgpm YWN0LCB0aGUgc2FtZSBtbWNvbmZpZyBkbW9wcy9oeXBlcmNhbGxzIGNhbiBiZSBhZGRlZCB0byBs ZXQgWGVuIGtub3cKd2hlcmUgTU1DT05GSUcgYXJlYSByZXNpZGVzLCBYZW4gd2lsbCB1c2UgdGhp cyBpbmZvcm1hdGlvbiB0byBmb3J3YXJkCk1NQ09ORklHIE1NSU8gaW9yZXFzIGFjY29yZGluZ2x5 IHRvIEJERiBvZiB0aGUgYWRkcmVzcy4gVGhlIGRpZmZlcmVuY2UKd2l0aCB0aGUgYXBwcm9hY2gg IzEgaXMgdGhhdCB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3cgY29tcGxldGVseQpvcHRpb25hbCB3 aGVuIHdlIHVzZSBNTUlPIGlvcmVxcyBmb3IgTU1DT05GSUcgb24gdmFuaWxsYSBYZW4vUUVNVS4K ClRoZSBxdWVzdGlvbiBpcyB3aHkgSU9SRVFfVFlQRV9DT1BZIC0+IElPUkVRX1RZUEVfUENJX0NP TkZJRwp0cmFuc2xhdGlvbiBpcyBhIG11c3QgaGF2ZSB0aGluZyBhdCBhbGw/IEl0IHdvbid0IG1h a2UgaGFuZGxpbmcgc2ltcGxlci4KRm9yIGN1cnJlbnQgUUVNVSBpbXBsZW1lbnRhdGlvbiBJT1JF UV9UWVBFX0NPUFkgKE1NSU8gYWNjZXNzZXMgZm9yCk1NQ09ORklHKSB3b3VsZCBiZSBwcmVmZXJh YmxlIGFzIGl0IGFsbG93cyB0byB1c2UgdGhlIGV4aXN0aW5nIGNvZGUuCgpJIHRoaW5rIGl0IHdp bGwgYmUgc2FmZSB0byB1c2UgTU1DT05GSUcgZW11bGF0aW9uIG9uIE1NSU8gbGV2ZWwgZm9yIG5v dwphbmQgbGF0ZXIgZXh0ZW5kIGl0IHdpdGggJ3NldF9tbWNvbmZpZ18nIGRtb3AvaHlwZXJjYWxs IGZvciB0aGUKJ211bHRpcGxlIGRldmljZSBlbXVsYXRvcnMnIElPUkVRX1RZUEVfQ09QWSByb3V0 aW5nIHRvIHdvcmsgc2FtZSBhcyBmb3IKUENJIGNvbmYsIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IFhl bkdUIGV0YyBvbiBRMzUgYXMgd2VsbC4KCkFmdGVyIGFsbCwgYWxsIHRoaXMgaXMgUTM1LXNwZWNp ZmljIGFuZCB3b24ndCBoYXJtIHRoZSBleGlzdGluZyBpNDQwCmVtdWxhdGlvbiBpbiBhbnkgd2F5 LgoKPj4gSSBhc3N1bWUgaXQgaXMgc29tZWhvdyByZWxhdGVkIHRvIHRoaXMgY29kZSBpbiB4ZW4t aHZtLmM6Cj4+ICAgICAgICAgICAgICAgICAvKiBGYWtlIGEgd3JpdGUgdG8gcG9ydCAweENGOCBz byB0aGF0Cj4+ICAgICAgICAgICAgICAgICAgKiB0aGUgY29uZmlnIHNwYWNlIGFjY2VzcyB3aWxs IHRhcmdldCB0aGUKPj4gICAgICAgICAgICAgICAgICAqIGNvcnJlY3QgZGV2aWNlIG1vZGVsLgo+ PiAgICAgICAgICAgICAgICAgICovCj4+ICAgICAgICAgICAgICAgICB2YWwgPSAoMXUgPDwgMzEp IHwgKChyZXEtPmFkZHIgJiAweDBmMDApIDwuLi4+Cj4+ICAgICAgICAgICAgICAgICBkb19vdXRw KDB4Y2Y4LCA0LCB2YWwpOwo+PiBpZiB5ZXMsIHNpbWlsYXIgdGhpbmcgY2FuIGJlIG1hZGUgZm9y IElPUkVRX1RZUEVfQ09QWSBhY2Nlc3NlcyB0bwo+PiB0aGUgZW11bGF0ZWQgTU1DT05GSUcgaWYg bmVlZGVkLiAgCj4KPkkgaGF2ZSB0byBhZG1pdCBJIGRvbid0IGtub3cgdGhhdCBtdWNoIGFib3V0 IFFFTVUsIGFuZCBJIGhhdmUgbm8gaWRlYQo+d2hhdCB0aGUgY2h1bmsgYWJvdmUgaXMgc3VwcG9z ZWQgdG8gYWNjb21wbGlzaC4KPgo+PiAKPj4gSW4gSFZNK1FFTVUgY2FzZSB3ZSBhcmUgbm90IGxp bWl0ZWQgdG8gbWVyZWx5IHBhc3NlZCB0aHJvdWdoIGRldmljZXMsCj4+IG1vc3Qgb2YgdGhlIG9i c2VydmFibGUgUENJIGNvbmZpZyBzcGFjZSBkZXZpY2VzIGJlbG9uZyB0byBvbmUKPj4gcGFydGlj dWxhciBRRU1VIGluc3RhbmNlLiBUaGlzIGRpY3RhdGVzIHRoZSBvdmVyYWxsIGVtdWxhdGVkCj4+ IE1NQ09ORklHIGxheW91dCBmb3IgYSBkb21haW4gd2hpY2ggc2hvdWxkIGJlIGluIHN5bmMgdG8g d2hhdCBRRU1VCj4+IGVtdWxhdGVzIHZpYSBDRjhoL0NGQ2ggYWNjZXNzZXMuLi4gYW5kIGJldHdl ZW4gbXVsdGlwbGUgZGV2aWNlIG1vZGVsCj4+IGluc3RhbmNlcyAoaWYgdGhlcmUgYXJlIGFueSwg c3RpbGwgbm90IHN1cmUgd2hhdCBtdWx0aXBsZSBQQ0ktZGV2aWNlCj4+IGVtdWxhdG9ycyB5b3Ug bWVudGlvbmVkIHJlYWxseSBhcmUpLiAgCj4KPkluIG5ld2VyIHZlcnNpb25zIG9mIFhlbiAoPjQu NSBJSVJDLCBQYXVsIGtub3dzIG1vcmUpLCBRRU1VIGRvZXNuJ3QKPmRpcmVjdGx5IHRyYXAgYWNj ZXNzZXMgdG8gdGhlIDB4Y2Y4LzB4Y2ZjIElPIHBvcnRzLCBpdCdzIFhlbiBpbnN0ZWFkCj50aGUg b25lIHRoYXQgZGV0ZWN0cyBhbmQgZGVjb2RlcyBzdWNoIGFjY2Vzc2VzLCBhbmQgdGhlbiBmb3J3 YXJkcyB0aGVtCj50byB0aGUgSU9SRVEgc2VydmVyIHRoYXQgaGFzIGJlZW4gcmVnaXN0ZXJlZCB0 byBoYW5kbGUgdGhlbS4KPgo+WW91IGNhbm5vdCBzaW1wbHkgZm9yd2FyZCBhbGwgTUNGRyBhY2Nl c3NlcyB0byBRRU1VIGFzIE1NSU8gYWNjZXNzZXMsCj5YZW4gbmVlZHMgdG8gZGVjb2RlIHRoZW0g YW5kIHRoZXkgbmVlZCB0byBiZSBoYW5kbGVkIGFzCj5JT1JFUV9UWVBFX1BDSV9DT05GSUcgcmVx dWVzdHMsIG5vdCBJT1JFUV9UWVBFX0NPUFkgSU1PLgo+Cj4+IAo+PiBCYXNpY2FsbHksIHdlIGhh dmUgYW4gZW11bGF0ZWQgTU1DT05GSUcgYXJlYSBvZiA2NC8xMjgvMjU2TUIgc2l6ZSBpbgo+PiB0 aGUgTU1JTyBob2xlIG9mIHRoZSBndWVzdCBIVk0gZG9tYWluLiAoQlRXLCB0aGlzIGFyZWEgaXRz ZWxmIGNhbiBiZQo+PiBjb25zaWRlcmVkIGEgZmVhdHVyZSBvZiB0aGUgY2hpcHNldCB0aGUgZGV2 aWNlIG1vZGVsIGVtdWxhdGVzLikKPj4gSXQgY2FuIGJlIHJlbG9jYXRlZCB0byBzb21lIG90aGVy IHBsYWNlIGluIE1NSU8gaG9sZSwgdGhpcyBtZWFucyB0aGF0Cj4+IFFFTVUgd2lsbCB0cmFwIGFj Y2Vzc2VzIHRvIHRoZSBzcGVjaWZpYyB0byB0aGUgZW11bGF0ZWQgY2hpcHNldAo+PiBQQ0lFWEJB UiByZWdpc3RlciBhbmQgd2lsbCBpc3N1ZSBzYW1lIE1NSU8gdW5tYXAvbWFwIGNhbGxzIGFzIGZv cgo+PiBhbnkgbm9ybWFsIGVtdWxhdGVkIE1NSU8gcmFuZ2UuCj4+IAo+PiBPbiB0aGUgb3RoZXIg aGFuZCwgaXQgd29uJ3QgYmUgZWFzeSB0byBwcm92aWRlIGVtdWxhdGVkIE1NQ09ORklHCj4+IHRy YW5zbGF0aW9uIGludG8gSU9SRVFfVFlQRV9QQ0lfQ09ORklHIGZyb20gWGVuIHNpZGUuIFhlbiBz aG91bGQga25vdwo+PiBjdXJyZW50IGVtdWxhdGVkIE1NQ09ORklHIGFyZWEgcG9zaXRpb24gYW5k IHNpemUgaW4gb3JkZXIgdG8KPj4gdHJhbnNsYXRlIChvciBub3QpIGFjY2Vzc2VzIHRvIGl0IGlu dG8gY29ycmVzcG9uZGluZyBCREYvcmVnIHBhaXIKPj4gKCt3aGV0aGVyIHRoYXQgYXJlYSBpcyBl bmFibGVkIGZvciBkZWNvZGluZyBvciBub3QpLiBUaGlzIHdpbGwKPj4gbGlrZWx5IHJlcXVpcmUg dG8gaW50cm9kdWNlIG5ldyBoeXBlcmNhbGwocykuICAKPgo+WWVzLCB5b3Ugd2lsbCBoYXZlIHRv IGludHJvZHVjZSBuZXcgaHlwZXJjYWxscyB0byB0ZWxsIFhlbiB0aGUKPnBvc2l0aW9uL3NpemUg b2YgdGhlIE1DRkcgaG9sZS4gTGlrZWx5IHlvdSB3YW50IHRvIHRlbGwgaXQgdGhlIHN0YXJ0Cj5h ZGRyZXNzLCB0aGUgcGNpIHNlZ21lbnQsIHN0YXJ0IGJ1cyBhbmQgZW5kIGJ1cy4gSSBrbm93IHBj aSBzZWdtZW50Cj5hbmQgc3RhcnQgYnVzIGlzIGFsd2F5cyBnb2luZyB0byBiZSAwIEFUTSwgYnV0 IGl0IHdvdWxkIGJlIG5pY2UgdG8KPmhhdmUgYSBjb21wbGV0ZSBpbnRlcmZhY2UuCj4KPkJ5IHlv dXIgY29tbWVudCBhYm92ZSBJIHRoaW5rIHlvdSB3YW50IGFuIGludGVyZmFjZSB0aGF0IGFsbG93 cyB5b3UgdG8KPnJlbW92ZS9hZGQgdGhvc2UgTUNGRyBhcmVhcyBhdCBydW50aW1lLgo+Cj4+IFRo ZSBxdWVzdGlvbiBpcyBpZiB0aGVyZSB3aWxsIGJlIGFueSBkaWZmZXJlbmNlIG9yIGJlbmVmaXQg YXQgYWxsLiAgCj4KPklNTyBpdCdzIG5vdCBhYm91dCBiZW5lZml0cyBvciBkaWZmZXJlbmNlcywg aXQncyBhYm91dCBjb3JyZWN0bmVzcy4KPlhlbiBjdXJyZW50bHkgZGV0ZWN0cyBhY2Nlc3NlcyB0 byB0aGUgUENJIGNvbmZpZ3VyYXRpb24gc3BhY2UgZnJvbSBJTwo+cG9ydHMgYW5kIGZvciBjb25z aXN0ZW5jeSBpdCBzaG91bGQgYWxzbyBkZXRlY3QgYWNjZXNzZXMgdG8gdGhpcyBzcGFjZQo+Ynkg YW55IG90aGVyIG1lYW5zLgo+Cj4+IEl0J3MgYmFzaWNhbGx5IHRoZSBzYW1lIGVtdWxhdGVkIE1N SU8gcmFuZ2UgYWZ0ZXIgYWxsLCBidXQgaW4gb25lCj4+IGNhc2Ugd2UgdHJhcCBhY2Nlc3NlcyB0 byBpdCBpbiBYZW4gYW5kIHRyYW5zbGF0ZSB0aGVtIGludG8KPj4gSU9SRVFfVFlQRV9QQ0lfQ09O RklHIHJlcXVlc3RzLgo+PiBXZSBoYXZlIHRvIHByb3ZpZGUgc29tZSBpbmZyYXN0cnVjdHVyZSB0 byBsZXQgWGVuIGtub3cgd2hlcmUgdGhlCj4+IGRldmljZSBtb2RlbC9ndWVzdCBleHBlY3RzIHRv IHVzZSB0aGUgTU1DT05GSUcgYXJlYSAoYW5kIGl0cyBzaXplKS4KPj4gVGhlIGRldmljZSBtb2Rl bCB3aWxsIG5lZWQgdG8gdXNlIHRoaXMgaW5mcmFzdHJ1Y3R1cmUsIGluZm9ybWluZyBYZW4KPj4g b2YgYW55IGNoYW5nZXMuIEFsc28sIGR1ZSB0byBNTUNPTkZJRyBuYXR1cmUgdGhlcmUgbWlnaHQg YmUgc29tZQo+PiBwaXRmYWxscyBsaWtlIGEgbmVjZXNzaXR5IHRvIHNlbmQgbXVsdGlwbGUgSU9S RVFfVFlQRV9QQ0lfQ09ORklHCj4+IGlvcmVxcyBjYXVzZWQgYnkgYSBzaW5nbGUgbWVtb3J5IHJl YWQvd3JpdGUgb3BlcmF0aW9uLiAgCj4KPlRoaXMgc2VlbXMgYWxsIGZpbmUuIFdoeSBkbyB5b3Ug ZXhwZWN0IE1DRkcgYWNjZXNzIHRvIGNyZWF0ZSBtdWx0aXBsZQo+SU9SRVFfVFlQRV9QQ0lfQ09O RklHIGJ1dCBub3QgbXVsdGlwbGUgSU9SRVFfVFlQRV9DT1BZPwo+PiBJbiBhbm90aGVyIGNhc2Us IHdlIHN0aWxsIGhhdmUgYW4gZW11bGF0ZWQgTU1JTyByYW5nZSwgYnV0IFhlbiB3aWxsCj4+IHNl bmQgcGxhaW4gSU9SRVFfVFlQRV9DT1BZIHJlcXVlc3RzIHRvIFFFTVUgd2hpY2ggaXQgaGFuZGxl cyBpdHNlbGYuCj4+IEluIHN1Y2ggY2FzZSwgYWxsIGNvZGUgdG8gd29yayB3aXRoIE1NQ09ORklH IGFjY2Vzc2VzIGlzIGF2YWlsYWJsZQo+PiBmb3IgcmV1c2UgcmlnaHQgYXdheSAobW1jZmcgLT4g cGNpXyogdHJhbnNsYXRpb24gaW4gUUVNVSksIG5vIG5ldwo+PiBmdW5jdGlvbmFsaXR5IHJlcXVp cmVkIG5laXRoZXIgaW4gWGVuIG9yIFFFTVUuICAKPgo+QXMgSSB0cmllZCB0byBhcmd1bWVudCBh Ym92ZSwgSSB0aGluayB0aGlzIGlzIG5vdCBjb3JyZWN0LCBidXQgSSB3b3VsZAo+YWxzbyBsaWtl IHRoYXQgUGF1bCBleHByZXNzZXMgaGlzIG9waW5pb24gYXMgdGhlIElPUkVRIG1haW50YWluZXIu Cj4KPj4gPj4gIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9jb25maWcuaCAgIHwgICA0ICsrCj4+ ID4+ICB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvcGNpLmMgICAgICB8IDEyNwo+PiA+PiArKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPj4gPj4gdG9vbHMvZmlybXdhcmUvaHZt bG9hZGVyL3BjaV9yZWdzLmggfCAgIDIgKyAzIGZpbGVzIGNoYW5nZWQsIDEwNgo+PiA+PiBpbnNl cnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKPj4gPj4gCj4+ID4+IGRpZmYgLS1naXQgYS90b29s cy9maXJtd2FyZS9odm1sb2FkZXIvY29uZmlnLmgKPj4gPj4gYi90b29scy9maXJtd2FyZS9odm1s b2FkZXIvY29uZmlnLmggaW5kZXggNmZkZTZiN2I2MC4uNTQ0M2VjZDgwNAo+PiA+PiAxMDA2NDQg LS0tIGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2NvbmZpZy5oCj4+ID4+ICsrKyBiL3Rvb2xz L2Zpcm13YXJlL2h2bWxvYWRlci9jb25maWcuaAo+PiA+PiBAQCAtNTMsMTAgKzUzLDE0IEBAIGV4 dGVybiB1aW50OF90IGlvYXBpY192ZXJzaW9uOwo+PiA+PiAgI2RlZmluZSBQQ0lfSVNBX0RFVkZO ICAgICAgIDB4MDggICAgLyogZGV2IDEsIGZuIDAgKi8KPj4gPj4gICNkZWZpbmUgUENJX0lTQV9J UlFfTUFTSyAgICAweDBjMjBVIC8qIElTQSBJUlFzIDUsMTAsMTEgYXJlIFBDSQo+PiA+PiBjb25u ZWN0ZWQgKi8gI2RlZmluZSBQQ0lfSUNIOV9MUENfREVWRk4gIDB4ZjggICAgLyogZGV2IDMxLCBm biAwCj4+ID4+ICovICsjZGVmaW5lIFBDSV9NQ0hfREVWRk4gICAgICAgMCAgICAgICAvKiBidXMg MCwgZGV2IDAsIGZ1bmMgMCAqLwo+PiA+PiAgCj4+ID4+ICAvKiBNTUlPIGhvbGU6IEhhcmRjb2Rl ZCBkZWZhdWx0cywgd2hpY2ggY2FuIGJlIGR5bmFtaWNhbGx5Cj4+ID4+IGV4cGFuZGVkLiAqLyAj ZGVmaW5lIFBDSV9NRU1fRU5EICAgICAgICAgMHhmYzAwMDAwMAo+PiA+PiAgCj4+ID4+ICsvKiBw b3NzaWJsZSB2YWx1ZXMgYXJlOiA2NCwgMTI4LCAyNTYgKi8KPj4gPj4gKyNkZWZpbmUgUENJX01B WF9NQ0ZHX0JVU0VTICA2NCAgICAKPj4gPgo+PiA+V2hhdCB0aGUgcmVhc29uaW5nIGZvciB0aGlz IHZhbHVlPyBEbyB3ZSBrbm93IHdoaWNoIGRldmljZXMgbmVlZAo+PiA+RUNBTSBhcmVhcz8gIAo+ PiAKPj4gWWVzLCBYZW4gaXMgbGltaXRlZCB0byBidXMgMCBlbXVsYXRpb24gY3VycmVudGx5LCB0 aGUgZGVzY3JpcHRpb24KPj4gc3RhdGVzICJXaGVuIG11bHRpcGxlIFBDSSBidXNlcyBzdXBwb3J0 IGZvciBYZW4gd2lsbCBiZSBpbXBsZW1lbnRlZCwKPj4gUENJX01BWF9NQ0ZHX0JVU0VTIG1heSBi ZSBjaGFuZ2VkIHRvIGNhbGN1bGF0aW9uIG9mIHRoZSBudW1iZXIgb2YKPj4gYnVzZXMgYWNjb3Jk aW5nIHRvIHJlc3VsdHMgb2YgdGhlIFBDSSBkZXZpY2VzIGVudW1lcmF0aW9uIi4KPj4gCj4+IEkg dGhpbmsgaXQgbWlnaHQgYmUgYmV0dGVyIHRvIHJlcGxhY2UgJ3N3aXRjaCAoUENJX01BWF9NQ0ZH X0JVU0VTKScKPj4gd2l0aCB0aGUgcmVhbCBjb2RlIHJpZ2h0IGF3YXksIGkuZS4gY2hhbmdlIGl0 IHRvCj4+IAo+PiAnc3dpdGNoIChtYXhfYnVzX251bSwgYWxpZ25lZCB1cCB0byA2NC8xMjgvMjU2 IGJvdW5kYXJ5KScsCj4+IHdoZXJlIG1heF9idXNfbnVtIHNob3VsZCBiZSBzZXQgaW4gUENJIGRl dmljZSBlbnVtZXJhdGlvbiBjb2RlIGluCj4+IHBjaV9zZXR1cCgpLiBBcyB3ZSBhcmUgbGltaXRl ZCB0byBidXMgMCBjdXJyZW50bHksIHdlJ2xsIGp1c3Qgc2V0IGl0Cj4+IHRvIDAgZm9yIG5vdywg YmVmb3JlL2FmdGVyIHRoZSBQQ0kgZGV2aWNlIGVudW1lcmF0aW9uIGxvb3AgKHdoaWNoCj4+IHNo b3VsZCBiZWNhbWUgbXVsdGktYnVzIGNhcGFibGUgZXZlbnR1YWxseSkuICAKPgo+SSBndWVzcyB0 aGlzIGlzIGFsbCBwcmV0dHkgbXVjaCBoYXJkY29kZWQgdG8gYnVzIDAgaW4gc2V2ZXJhbCBwbGFj ZXMsCj5zbyBJJ20gbm90IHN1cmUgaXQncyB3b3J0aCB0byBhZGQgUENJX01BWF9NQ0ZHX0JVU0VT LiBJTU8gaWYgc29tZXRoaW5nCj5saWtlIHRoaXMgc2hvdWxkIGJlIGFkZGVkIGl0IHNob3VsZCBi ZSBQQ0lfTUFYX0JVU0VTLCBhbmQgc2V2ZXJhbAo+cGxhY2VzIHNob3VsZCBiZSBjaGFuZ2VkIHRv IG1ha2UgdXNlIG9mIGl0LiBPciBpZGVhbGx5IHdlIHNob3VsZCBmaW5kCj5hIHdheSB0byBkZXRl Y3QgdGhpcyBhdCBydW50aW1lLCB3aXRob3V0IG5lZWRlZCBhbnkgaGFyZGNvZGVkIGRlZmluZXMu CgpHZXR0aW5nIHJpZCBvZiBidXMgMCBsaW1pdGF0aW9uIHNob3VsZCBoYXZlIGhpZ2ggcHJpb3Jp dHkgSSdtIGFmcmFpZC4gCkl0IGhhcyBiZWNvbWUgYW4gb2JzdGFjbGUgZm9yIFBDSWUgcGFzc3Ro cm91Z2guCgo+SSB0aGluayBpdCB3b3VsZCBiZSBnb29kIGlmIHlvdSBjYW4gYWRkIGEgbm90ZSBj b21tZW50IGRlc2NyaWJpbmcgdGhlCj5kaWZmZXJlbnQgTUNGRyBzaXplcyBzdXBwb3J0ZWQgYnkg dGhlIFEzNSBjaGlwc2V0ICg2NC8xMjgvMjU2KS4KCndpbGwgYWRkICIuLi5zdXBwb3J0ZWQgYnkg UTM1IiBoZXJlOgoKPj4gKy8qIHBvc3NpYmxlIHZhbHVlcyBhcmU6IDY0LCAxMjgsIDI1NiAqLwo+ PiArI2RlZmluZSBQQ0lfTUFYX01DRkdfQlVTRVMgIDY0ICAgIAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9t YWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==