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: Thu, 22 Mar 2018 00:25:40 +1000 Message-ID: <20180322002540.000032f1@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> <20180321105840.00004698@gmail.com> <20180321090911.qd6epofdaywc4blb@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 1eyegh-0005Dw-4B for xen-devel@lists.xenproject.org; Wed, 21 Mar 2018 14:25:59 +0000 Received: by mail-lf0-x22c.google.com with SMTP id y2-v6so8159018lfc.5 for ; Wed, 21 Mar 2018 07:25:55 -0700 (PDT) In-Reply-To: <20180321090911.qd6epofdaywc4blb@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: Stefano Stabellini , Wei Liu , Andrew Cooper , Ian Jackson , Paul Durrant , Jan Beulich , Anthony Perard , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gV2VkLCAyMSBNYXIgMjAxOCAwOTowOToxMSArMDAwMApSb2dlciBQYXUgTW9ubsOpIDxyb2dl ci5wYXVAY2l0cml4LmNvbT4gd3JvdGU6Cgo+T24gV2VkLCBNYXIgMjEsIDIwMTggYXQgMTA6NTg6 NDBBTSArMTAwMCwgQWxleGV5IEcgd3JvdGU6ClsuLi5dCj4+IEFjY29yZGluZyB0byBwdWJsaWMg c2xpZGVzIGZvciB0aGUgZmVhdHVyZSwgYm90aCBQQ0kgY29uZiBhbmQgTU1JTwo+PiBhY2Nlc3Nl cyBjYW4gYmUgcm91dGVkIHRvIHRoZSBkZXNpZ25hdGVkIGRldmljZSBtb2RlbC4gSXQgbG9va3Mg bGlrZQo+PiBmb3IgdGhpcyBwYXJ0aWN1bGFyIHNldHVwIGl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRl ciB3aGljaCBwYXJ0aWN1bGFyCj4+IGlvcmVxIHR5cGUgbXVzdCBiZSB1c2VkIGZvciBNTUNPTkZJ RyBhY2Nlc3NlcyAtLSBlaXRoZXIKPj4gSU9SRVFfVFlQRV9QQ0lfQ09ORklHIG9yIElPUkVRX1RZ UEVfQ09QWSAoTU1JTyBhY2Nlc3Nlcykgc2hvdWxkIGJlCj4+IGFjY2VwdGFibGUuICAKPgo+SXNu J3QgdGhhdCBnb2luZyB0byBiZSBxdWl0ZSBtZXNzeT8gSG93IGlzIHRoZSBJT1JFUSBzZXJ2ZXIg c3VwcG9zZWQKPnRvIGRlY29kZSBhIE1DRkcgYWNjZXNzIHJlY2VpdmVkIGFzIElPUkVRX1RZUEVf Q09QWT8KClRoaXMgY29kZSBpcyBhbHJlYWR5IGF2YWlsYWJsZSBhbmQgaW4gc3luYyB3aXRoIFFF TVUgbGVnYWN5IFBDSSBjb25mCmVtdWxhdGlvbiBpbmZyYXN0cnVjdHVyZS4KCj5JIGRvbid0IHRo aW5rIHRoZSBJT1JFUSBzZXJ2ZXIgbmVlZHMgdG8ga25vdyB0aGUgc3RhcnQgb2YgdGhlIE1DRkcK PnJlZ2lvbiwgaW4gd2hpY2ggY2FzZSBpdCB3b24ndCBiZSBhYmxlIHRvIGRldGVjdCBhbmQgZGVj b2RlIHRoZQo+YWNjZXNzIGlmIGl0J3Mgb2YgdHlwZSBJT1JFUV9UWVBFX0NPUFkuCgpIb3cgZG8g eW91IHRoaW5rIFhlbiB3aWxsIGJlIGFibGUgdG8ga25vdyBpZiBhcmJpdHJhcnkgTU1JTwphY2Nl c3MgdGFyZ2V0cyBNTUNPTkZJRyBhcmVhIGFuZCB0byB3aGljaCBCREYgdGhlIG9mZnNldCBpbiB0 aGlzIGFyZWEKYmVsb25ncywgd2l0aG91dCBrbm93aW5nIHdoZXJlIE1NQ09ORklHIGlzIGxvY2F0 ZWQgYW5kIHdoYXQgUENJIGJ1cwpsYXlvdXQgaXM/IEl0J3MgUUVNVSB3aG8gZW11bGF0ZSBQQ0lF WEJBUiBhbmQgY2FuIHRlbGwgWGVuIHdoZXJlCk1NQ09ORklHIGlzIGV4cGVjdGVkIHRvIGJlLgoK Pk1DRkcgYWNjZXNzZXMgbmVlZCB0byBiZSBzZW50IHRvIHRoZSBJT1JFUSBzZXJ2ZXIgYXMKPklP UkVRX1RZUEVfUENJX0NPTkZJRywgb3IgZWxzZSB5b3UgYXJlIGZvcmNpbmcgZWFjaCBJT1JFUSBz ZXJ2ZXIgdG8KPmtub3cgdGhlIHBvc2l0aW9uIG9mIHRoZSBNQ0ZHIGFyZWEgaW4gb3JkZXIgdG8g ZG8gdGhlIGRlY29kaW5nLiBJbgo+eW91ciBjYXNlIHRoaXMgd291bGQgd29yayBiZWNhdXNlIFFF TVUgY29udHJvbHMgdGhlIHBvc2l0aW9uIG9mIHRoZQo+TUNGRyByZWdpb24sIGJ1dCB0aGVyZSdz IG5vIG5lZWQgZm9yIG90aGVyIElPUkVRIHNlcnZlcnMgdG8ga25vdyB0aGUKPnBvc2l0aW9uIG9m IHRoZSBNQ0ZHIGFyZWEuCj4KPj4gVGhlIG9ubHkgdGhpbmcgd2hpY2ggbWF0dGVycyBpcyBpb3Jl cSByb3V0aW5nIGl0c2VsZiAtLQo+PiBtYWtpbmcgZGVjaXNpb25zIHRvIHdoaWNoIGRldmljZSBt b2RlbCB0aGUgUENJIGNvbmYvTU1JTyBpb3JlcSBzaG91bGQKPj4gYmUgc2VudC4gIAo+Cj5IbSwg c2VlIGFib3ZlLCBidXQgSSdtIGZhaXJseSBzdXJlIHlvdSBuZWVkIHRvIGZvcndhcmQgdGhvc2Ug TUNGRwo+YWNjZXNzZXMgYXMgSU9SRVFfVFlQRV9QQ0lfQ09ORklHIHRvIHRoZSBJT1JFUSBzZXJ2 ZXIuCgooYSBkZXRhaWxlZCBhbnN3ZXIgYmVsb3cpCgo+PiA+VHJhZGl0aW9uYWwgUENJIGNvbmZp ZyBzcGFjZSBhY2Nlc3NlcyBhcmUgbm90IElPIHBvcnQgc3BhY2UKPj4gPmFjY2Vzc2VzLiAgCj4+ IAo+PiAoYXNzdW1pbmcgJ25vdCcgbWlzdHlwZWQgaGVyZSkgIAo+Cj5Ob3QgcmVhbGx5LCB0aGlz IHNob3VsZCBpbnN0ZWFkIGJlOgo+Cj4iVHJhZGl0aW9uYWwgUENJIGNvbmZpZyBzcGFjZSBhY2Nl c3NlcyBhcmUgbm90IGZvcndhcmRlZCB0byB0aGUgSU9SRVEKPnNlcnZlciBhcyBJTyBwb3J0IHNw YWNlIGFjY2Vzc2VzIChJT1JFUV9UWVBFX1BJTykgYnV0IHJhdGhlciBhcyBQQ0kKPmNvbmZpZyBz cGFjZSBhY2Nlc3NlcyAoSU9SRVFfVFlQRV9QQ0lfQ09ORklHKS4iCj4KPlNvcnJ5IGZvciB0aGUg Y29uZnVzaW9uLgo+Cj4+ID5UaGUgSU9SRVEgY29kZSBpbiBYZW4gZGV0ZWN0cyBhY2Nlc3NlcyB0 byBwb3J0cyAweGNmOC8weGNmYyBhbmQKPj4gPklPUkVRIHNlcnZlcnMgY2FuIHJlZ2lzdGVyIGRl dmljZXMgdGhleSB3b3VsZCBsaWtlIHRvIHJlY2VpdmUKPj4gPmNvbmZpZ3VyYXRpb24gc3BhY2Ug YWNjZXNzZXMgZm9yLiBRRU1VIGlzIGFscmVhZHkgbWFraW5nIHVzZSBvZgo+PiA+dGhpcywgc2Vl IGZvciAgCj4+IAo+PiBUaGF0J3Mgb25lIG9mIHRoZSByZWFzb25zIHdoeSBjdXJyZW50IElPUkVR X1RZUEVfUENJX0NPTkZJRwo+PiBpbXBsZW1lbnRhdGlvbiBpcyBhIGJpdCBpbmNvbnZlbmllbnQg Zm9yIE1NQ09ORklHIE1NSU8gYWNjZXNzZXMgLS0KPj4gaXQncyB0b28gbXVjaCBDRjhoL0NGQ2gt Y2VudHJpYyBpbiBpdHMgaW1wbGVtZW50YXRpb24sIG1pZ2h0IGJlCj4+IHBhaW5mdWwgdG8gY2hh bmdlIHNvbWV0aGluZyBpbiB0aGUgY29kZSB3aGljaCB3YXMgaW50ZW5kZWQgZm9yCj4+IENGOGgv Q0ZDaCBoYW5kbGluZyAoYW5kIG5vdCBmb3IgTU1JTyBwcm9jZXNzaW5nKS4gIAo+Cj5JJ20gbm90 IHN1cmUgSSBmb2xsb3cuIERvIHlvdSBtZWFuIHRoYXQgY2hhbmdlcyBzaG91bGQgYmUgbWFkZSB0 byB0aGUKPmlvcmVxIHN0cnVjdCBpbiBvcmRlciB0byBmb3J3YXJkIE1DRkcgYWNjZXNzZXMgdXNp bmcKPklPUkVRX1RZUEVfUENJX0NPTkZJRyBhcyBpdCdzIHR5cGU/CgpObyBjaGFuZ2VzIGZvciBp b3JlcSBzdHJ1Y3R1cmVzIG5lZWRlZCBmb3Igbm93LgoKPj4gSXQgd2lsbCBiZSBoYW5kbGVkIGJ5 IElPUkVRIHRvbywganVzdCB1c2luZyBhIGRpZmZlcmVudCBJT1JFUSB0eXBlCj4+IChNTUlPIG9u ZSkuIFRoZSBiYXNpYyBxdWVzdGlvbiBpcyB3aHkgZG8gd2UgaGF2ZSB0byBzdGljayB0byBQQ0kg Y29uZgo+PiBzcGFjZSBpb3JlcXMgZm9yIGVtdWxhdGluZyBNTUlPIGFjY2Vzc2VzIHRvIE1NQ09O RklHLiAgCj4KPkJlY2F1c2Ugb3RoZXIgSU9SRVEgc2VydmVycyBkb24ndCBuZWVkIHRvIGtub3cg YWJvdXQgdGhlIHBvc2l0aW9uL3NpemUKPm9mIHRoZSBNQ0ZHIGFyZWEsIGFuZCBjYW5ub3QgcmVn aXN0ZXIgTU1JTyByYW5nZXMgdGhhdCBjb3ZlciB0aGVpcgo+ZGV2aWNlJ3MgUENJIGNvbmZpZ3Vy YXRpb24gc3BhY2UgaW4gdGhlIE1DRkcgcmVnaW9uLgo+Cj5Ob3QgdG8gbWVudGlvbiB0aGF0IGl0 IHdvdWxkIHdvdWxkIGJlIGEgdGVycmlibGUgZGVzaWduIGZsYXcgdG8gZm9yY2UKPklPUkVRIHNl cnZlcnMgdG8gcmVnaXN0ZXIgUENJIGRldmljZXMgYW5kIE1DRkcgYXJlYXMgYmVsb25naW5nIHRv Cj50aG9zZSBkZXZpY2VzIHNlcGFyYXRlbHkgYXMgTU1JTyBpbiBvcmRlciB0byB0cmFwIGFsbCBw b3NzaWJsZSBQQ0kKPmNvbmZpZ3VyYXRpb24gc3BhY2UgYWNjZXNzZXMuCgpQQ0kgY29uZiBzcGFj ZSBsYXlvdXQgaXMgc2hhcmVkIGJ5IHRoZSBlbXVsYXRlZCBtYWNoaW5lLiBBbmQgTU1DT05GSUcK bGF5b3V0IGlzIG1hbmRhdGVkIGJ5IHRoaXMgY29tbW9uIFBDSSBidXMgbWFwLgoKRXZlbiBpZiB0 aG9zZSAnbXVsdGlwbGUgZGV2aWNlIG1vZGVscycgc2VlIGEgZGlmZmVyZW50IHBpY3R1cmUgb2Yg UENJCmNvbmYgc3BhY2UsIHRoZWlyIHZpc2lvbnMgb2YgUENJIGJ1cyBtdXN0IG5vdCBvdmVybGFw ICsgTU1DT05GSUcgbGF5b3V0Cm11c3QgYmUgY29uc2lzdGVudCBiZXR3ZWVuIGRpZmZlcmVudCBk ZXZpY2UgbW9kZWxzLgoKQWx0aG91Z2ggaXQgaXMgYSB0ZXJyaWJsZSBtaXN0YWtlIHRvIHRoaW5r IGFib3V0IHRoZSBlbXVsYXRlZCBQQ0kgYnVzCmxpa2UgaXQncyBhIHNldCBvZiBkaXN0aW5jdCBQ Q0kgZGV2aWNlcyB1bnJlbGF0ZWQgdG8gZWFjaCBvdGhlci4gSXQncwphbGwgY291cGxlZCB0b2dl dGhlci4gQW5kIHRoaXMgaXMgZXNwZWNpYWxseSB0cnVlIGZvciBQQ0llLgpNYW55IFBDSWUgZmVh dHVyZXMgcmVseSBvbiBQQ0llIGRldmljZSBpbnRlcmFjdGlvbiBpbiBQQ0llIGZhYnJpYywgZWcu ClBDSWUgZW5kcG9pbnRzIG1heSBpbnRlcmFjdCB3aXRoIFJvb3QgQ29tcGxleCBpbiBtYW55IHdh eXMuIFRoaXMKY29vcGVyYXRpb24gbWF5ICBuZWVkIHRvIGJlIGVtdWxhdGVkIHNvbWVob3csIGVn LiB0byBwcm92aWRlIHNvbWUKc3VwcG9ydCBmb3IgUE0gZmVhdHVyZXMsIGxpbmsgbWFuYWdlbWVu dCBvciBuYXRpdmUgaG90cGx1ZyBmYWNpbGl0aWVzLgpFdmVuIGlmIHdlIGhhdmUgYSByZWFsIHBh c3NlZCB0aHJvdWdoIGRldmljZSwgd2UgbWlnaHQgbmVlZCB0byBwcm92aWRlCmFuIGVtdWxhdGVk IFBDSWUgU3dpdGNoIG9yIGEgUm9vdCBQb3J0IGZvciBpdCB0byBmdW5jdGlvbiBwcm9wZXJseQp3 aXRoaW4gdGhlIFBDSWUgaGllcmFyY2h5LgoKRGVkaWNhdGluZyBhbiBpc29sYXRlZCBQQ0kgZGV2 aWNlIHRvIHNvbWUgaXNvbGF0ZWQgZGV2aWNlIG1vZGVsIC0tCnRoYXQncyB3aGF0IG1pZ2h0IGJl IHRoZSBkZXNpZ24gZmxhdywgY29uc2lkZXJpbmcgdGhlIFBDSWUgd29ybGQuCgpbLi4uXQo+Cj5N YXliZSB5b3UgY291bGQgZGV0ZWN0IG9mZnNldHMgPj0gMjU2IGFuZCByZXBsYXkgdGhlbSBpbiBR RU1VIGxpa2UKPm1taW8gYWNjZXNzZXM/IFVzaW5nIHRoZSBhZGRyZXNzX3NwYWNlX3dyaXRlIG9y Cj5wY2llX21tY2ZnX2RhdGFfcmVhZC93cml0ZSBmdW5jdGlvbnM/Cj5JIGhhdmUgdG8gYWRtaXQg bXkga25vd2xlZGdlIG9mIFFFTVUgaXMgcXVpdGUgbGltaXRlZCwgc28gSSdtIG5vdCBzdXJlCj5v ZiB0aGUgYmVzdCB3YXkgdG8gaGFuZGxlIHRoaXMuCj4KPklkZWFsbHkgd2Ugc2hvdWxkIGZpbmQg YSB3YXkgdGhhdCBkb2Vzbid0IGludm9sdmUgaGF2aW5nIHRvIG1vZGlmeQo+ZWFjaCBjaGlwc2V0 IHRvIGhhbmRsZSBNQ0ZHIGFjY2Vzc2VzIGZyb20gWGVuLiBJdCB3b3VsZCBiZSBuaWNlIHRvCj5o YXZlIHNvbWUga2luZCBvZiBpbnRlcmZhY2UgaW5zaWRlIG9mIFFFTVUgc28gYWxsIGNoaXBzZXRz IGNhbgo+cmVnaXN0ZXIgTUNGRyBhcmVhcyBvciBtb2RpZnkgdGhlbSwgYnV0IHRoaXMgaXMgb3V0 IG9mIHRoZSBzY29wZSBvZgo+dGhpcyB3b3JrLgoKUm9nZXIsIFBhdWwsCgpIZXJlIGlzIHdoYXQg eW91IHN1Z2dlc3QsIGp1c3QgdG8gY2xhcmlmeToKCjEuIEFkZCB0byBYZW4gYSBuZXcgaHlwZXJj YWxsICgrY29ycmVzcG9uZGluZyBkbW9wKSBzbyBRRU1VIGNhbiB0ZWxsClhlbiB3aGVyZSBRRU1V IGVtdWxhdGVzIG1hY2hpbmUncyBNTUNPTkZJRyAoY2hpcHNldC1zcGVjaWZpYyBlbXVsYXRpb24K b2YgUENJRVhCQVIvSEVDQkFTRS9ldGMgbW1jZmcgcmVsb2NhdGlvbikuIFhlbiB3aWxsIHJlbHkg b24gdGhpcwppbmZvcm1hdGlvbiB0byBrbm93IHRvIHdoaWNoIFBDSSBkZXZpY2UgdGhlIGFkZHJl c3Mgd2l0aGluIE1NQ09ORklHCmJlbG9uZy4KCjIuIFhlbiB3aWxsIHRyYXAgdGhpcyBhcmVhICsg cmVtYXAgaXRzIHRyYXBwaW5nIHRvIG90aGVyIGFkZHJlc3MgaWYgUUVNVQp3aWxsIGluZm9ybSBY ZW4gYWJvdXQgZW11bGF0ZWQgUENJRVhCQVIgdmFsdWUgY2hhbmdlCgozLiBFdmVyeSBNTUlPIGFj Y2VzcyB0byB0aGUgY3VycmVudCBNTUNPTkZJRyByYW5nZSB3aWxsIGJlIGNvbnZlcnRlZAppbnRv IEJERiBmaXJzdCAoYnkgb2Zmc2V0IHdpdGhpbiB0aGlzIHJhbmdlLCBrbm93aW5nIHdoZXJlIHRo ZSByYW5nZSBpcykKCjQuIFRhcmdldCBkZXZpY2UgbW9kZWwgaXMgc2VsZWN0ZWQgdXNpbmcgY2Fs Y3VsYXRlZCBCREYKCjUuIE1NSU8gcmVhZC93cml0ZSBhY2Nlc3NlcyBhcmUgY29udmVydGVkIGlu dG8gUENJIGNvbmZpZyBzcGFjZSBpb3JlcXMKKGxpa2UgaXQgd2FzIGEgQ0Y4L0NGQ2ggb3BlcmF0 aW9uIGluc3RlYWQgb2YgTU1JTyBhY2Nlc3MpLiBBdCB0aGlzCnBvaW50IGlvcmVxIHN0cnVjdHVy ZSBhbGxvd3MgdG8gc3BlY2lmeSBleHRlbmRlZCBQQ0kgY29uZiBvZmZzZXQKKDEyLWJpdCksIHNv IGl0IHdpbGwgZml0IGludG8gUENJIGNvbmYgaW9yZXEuIEZvciBub3cgbGV0J3MgYXNzdW1lIHRo YXQKZWcuIGEgNjQtYml0IG1lbW9yeSBvcGVyYXRpb24gaXMgZWl0aGVyIGFib3J0ZWQgb3Igd29y a2Fyb3VuZGVkIGJ5CnNwbGl0dGluZyB0aGlzIG9wZXJhdGlvbiBpbnRvIG11bHRpcGxlIFBDSSBj b25mIGlvcmVxcy4KCjYuIFBDSSBjb25mIHJlYWQvd3JpdGUgaW9yZXFzIGFyZSBzZW50IHRvIHRo ZSBjaG9zZW4gZGV2aWNlIG1vZGVsCgo3LiBRRU1VIHJlY2VpdmUgTU1DT05GSUcgbWVtb3J5IHJl YWRzL3dyaXRlcyBhcyBQQ0kgY29uZiByZWFkcy93cml0ZXMKCjguIEFzIHRoZXNlIE1NQ09ORklH IFBDSSBjb25mIHJlYWRzIG9jY3VyIG91dCBvZiBjb250ZXh0IChqdXN0CmFkZHJlc3MvbGVuL2Rh dGEgd2l0aG91dCBhbnkgZW11bGF0ZWQgZGV2aWNlIGF0dGFjaGVkIHRvIGl0KSwgeGVuLWh2bS5j CnNob3VsZCBlbXBsb3kgc3BlY2lhbCBsb2dpYyB0byBtYWtlIGl0IFFFTVUtZnJpZW5kbHkgLS0g ZWcuIHJpZ2h0IG5vdwppdCBzZW5kcyByZWNlaXZlZCBQQ0kgY29uZiBhY2Nlc3MgaW50byAoZW11 bGF0ZWQgYnkgUUVNVSkgQ0Y4aC9DRkNoCnBvcnRzLgpUaGVyZSBpcyBhIHJlYWwgcHJvYmxlbSB0 byBlbWJlZCB0aGVzZSAibmFrZWQiIGFjY2Vzc2VzIGludG8gUUVNVQppbmZyYXN0cnVjdHVyZSwg d29ya2Fyb3VuZHMgYXJlIHJlcXVpcmVkLiBCVFcsIGZpbmRfcHJpbWFyeV9idXMoKSB3YXMKZHJv cHBlZCBmcm9tIFFFTVUgY29kZSAtLSBpdCBjb3VsZCd2ZSBiZWVuIHVzZWZ1bCBoZXJlLiBMZXQn cyBhc3N1bWUKc29tZSB3b3JrYXJvdW5kIGlzIGVtcGxveWVkIChsaWtlIHN0b3JpbmcgYSByZXF1 aXJlZCBvYmplY3QgcG9pbnRlcnMgaW4KZ2xvYmFsIHZhcmlhYmxlcyBmb3IgbGF0ZXIgdXNlIGlu IHhlbi1odm0uYykKCjkuIEV4aXN0aW5nIE1NQ09ORklHLWhhbmRsaW5nIGNvZGUgaW4gUUVNVSB3 aWxsIGJlIHVudXNlZCBpbiB0aGlzCnNjZW5hcmlvCgoxMC4gQWxsIHRoaXMgbmVlZGVkIHByaW1h cmlseSB0byBtYWtlIHRoZSBzcGVjaWZpYyAiTXVsdGlwbGUgZGV2aWNlCmVtdWxhdG9ycyIgZmVh dHVyZSB0byB3b3JrIChYZW5HVCB3YXMgbWVudGlvbmVkIGFzIGl0cyB1c2VyKSBvbiBRMzUKd2l0 aCBNTUNPTkZJRy4KCkFueXRoaW5nIHdyb25nL21pc3NpbmcgaGVyZT8KCihBZGRpbmcgU3RlZmFu byBhbmQgQW50aG9ueSBhcyB4ZW4taHZtLmMgbWVudGlvbmVkKQoKCkhlcmUgaXMgYW5vdGhlciBz dWdnZXN0aW9uOgoKMS4gUUVNVSB1c2UgZXhpc3RpbmcgZmFjaWxpdGllcyB0byBlbXVsYXRlIFBD SUVYQkFSIGZvciBhIFEzNQptYWNoaW5lLCBjYWxsaW5nIFhlbidzIG1hcF9pb19yYW5nZV90b19p b3JlcV9zZXJ2ZXIoKSBBUEkgdG8gbWFyayBNTUlPCnJhbmdlIGZvciBlbXVsYXRpb24sIGp1c3Qg bGlrZSBmb3IgYW55IG90aGVyIGVtdWxhdGVkIE1NSU8gcmFuZ2UKCjIuIEFsbCBhY2Nlc3NlcyB0 byB0aGlzIGFyZWEgd2lsbCBiZSBmb3J3YXJkZWQgdG8gUUVNVSBhcyBNTUlPIGlvcmVxcwphbmQg ZW11bGF0ZWQgZmxhd2xlc3NseSBhcyBldmVyeXRoaW5nIGlzIHdpdGhpbiBRRU1VIGFyY2hpdGVj dHVyZSAtLQpwY2ktaG9zdC9QQ0lCdXMvUENJRGV2aWNlIG1hY2hpbmVyeSBpbiBwbGFjZS4gTm8g d29ya2Fyb3VuZHMgcmVxdWlyZWQKZm9yIHhlbi1odm0uYwoKMy4gQ0Y4L0NGQyBhY2Nlc3NlcyB3 aWxsIGJlIGZvcndhcmRlZCBhcyBfUENJX0NPTkZJRyBpb3JlcXMsIGFzIHVzdWFsbHkuCkJvdGgg bWV0aG9kcyBhcmUgaW4gc3luYyBhcyB0aGV5IHVzZSBjb21tb24gUENJIGVtdWxhdGlvbgppbmZy YXN0cnVjdHVyZSBpbiBRRU1VCgo0LiBBdCB0aGlzIHBvaW50IGFic29sdXRlbHkgemVybyBjaGFu Z2VzIGFyZSByZXF1aXJlZCBpbiBib3RoIFhlbiBhbmQKUUVNVSBjb2RlLiBPbmx5IGV4aXN0aW5n IGludGVyZmFjZXMgYXJlIHVzZWQuIEluIGZhY3QsIG5vIHJlbGF0ZWQgY29kZQpjaGFuZ2VzIHJl cXVpcmVkIGF0IGFsbCBleGNlcHQgYSBidWdmaXggZm9yIFBDSUVYQkFSIG1hc2sgZW11bGF0aW9u Cihwcm92aWRlZCBpbiB0aGlzIHNlcmllcykKCjUuIEJ1dC4gSnVzdCB0byBtYWtlIHRoZSAnbXVs dGlwbGUgZGV2aWNlIGVtdWxhdG9ycycgKG5vIGV4dHJhIHJlYXNvbnMKc28gZmFyKSBmZWF0dXJl IHRvIHdvcmssIHdlIGFkZCB0aGUgc2FtZSBoeXBlcmNhbGwvZG1vcCB1c2FnZSB0byBsZXQKWGVu IGtub3cgd2hlcmUgUUVNVSBlbXVsYXRlcyBNTUNPTkZJRwoKNi4gWGVuIHdpbGwgY29udGludWUg dG8gdHJhcCBhY2Nlc3NlcyB0byB0aGlzIHJhbmdlIGJ1dCBpbnN0ZWFkIG9mCnNlbmRpbmcgX0NP UFkgaW9yZXEgaW1tZWRpYXRlbHksIGhlIHdpbGwgY2hlY2sgdGhlIGFkZHJlc3MgYWdhaW5zdApr bm93biBNTUNPTkZJRyBsb2NhdGlvbiAoaW4gdGhlIHNhbWUgbWFubmVyIGFzIGFib3ZlKSwgdGhl biBjb252ZXJ0IHRoZQpvZmZzZXQgd2l0aGluIGl0IHRvIEJERiBhbmQgaGUgY2FuIHByb2NlZWQg dG8gdXN1YWwgQkRGLWJhc2VkIGlvcmVxCnJvdXRpbmcgZm9yIHRob3NlIGRldmljZSBlbXVsYXRv ciBETXMsIHdoYXRldmVyIHRoZXkgYXJlCgo3LiBJbiBmYWN0LCBNTUlPIC0+IFBDSSBjb25mIGlv cmVxIHRyYW5zbGF0aW9uIGNhbiBiZSBmcmVlbHkgdXNlZCBhcwp3ZWxsIGF0IHRoaXMgc3RhZ2Us IGlmIGl0IGlzIG1vcmUgY29udmVuaWVudCBmb3IgJ211bHRpcGxlIGRldmljZQplbXVsYXRvcnMn IGZlYXR1cmUgdXNlcnMuIEl0IGNhbiBiZSBldmVuIG1hZGUgc2VsZWN0YWJsZS4KClNvLCB0aGUg cXVlc3Rpb24gd2hpY2ggbmVlZHMgZXhwbGFuYXRpb24gaXM6IHdoeSBkbyB5b3UgdGhpbmsgTU1J Ty0+UENJCmNvbmYgaW9yZXEgdHJhbnNsYXRpb24gaXMgbWFuZGF0b3J5IGZvciBNTUNPTkZJRz8g Q2FuJ3Qgd2UganVzdCBhZGQgbmV3Cmh5cGVyY2FsbC9kbW9wIHRvIG1ha2UgaW9yZXEgcm91dGlu ZyBmb3IgJ211bHRpcGxlIGRldmljZSBlbXVsYXRvcnMnIHRvCndvcmsgd2hpbGUgbGV0dGluZyBR RU1VIHRvIHVzZSBhbnkgQVBJIHByb3ZpZGVkIGZvciBoaW0gdG8gZG8gaXRzIHRhc2tzPwoKSXQn cyBraW5kYSBmdW5ueSB0byBwcmV0ZW5kIHRoYXQgUUVNVSBkb24ndCBrbm93IGFueXRoaW5nIGFi b3V0Ck1NQ09ORklHIGJlaW5nIE1NSU8gd2hlbiBpdCdzIFFFTVUgd2hvIGluZm9ybSBYZW4gYWJv dXQgaXRzIG1lbW9yeQphZGRyZXNzIGFuZCBzaXplLgoKPlJlZ2FyZGxlc3Mgb2YgaG93IHRoaXMg ZW5kcyB1cCBiZWluZyBpbXBsZW1lbnRlZCBpbnNpZGUgb2YgUUVNVSBJCj50aGluayB0aGUgYWJv dmUgYXBwcm9hY2ggaXMgdGhlIHJpZ2h0IG9uZSBmcm9tIGFuIGFyY2hpdGVjdHVyYWwgUG9WLgo+ Cj5BRkFJQ1QgdGhlcmUgYXJlIHN0aWxsIHNvbWUgcmVzZXJ2ZWQgYml0cyBpbiB0aGUgaW9yZXEg c3RydWN0IHRoYXQgeW91Cj5jb3VsZCB1c2UgdG8gc2lnbmFsICd0aGlzIGlzIGEgTUNGRyBQQ0kg YWNjZXNzJyBpZiByZXF1aXJlZC4KPgo+PiBBcHByb2FjaCAjMi4gSGFuZGxpbmcgTU1DT05GSUcg YXJlYSBpbnNpZGUgUUVNVSB1c2luZyB1c3VhbCBNTUlPCj4+IGVtdWxhdGlvbjoKPj4gCj4+IDEu IFFFTVUgd2lsbCB0cmFwIGFjY2Vzc2VzIHRvIFBDSUVYQkFSIChvciB3aGF0ZXZlciBlbHNlIHBv c3NpYmx5Cj4+IHN1cHBvcnRlZCBpbiB0aGUgZnV0dXJlIGxpa2UgSEVDQkFTRSksIGV2ZW50dWFs bHkgYXNraW5nIFhlbiB0byBtYXAKPj4gdGhlIE1NQ09ORklHIE1NSU8gcmFuZ2UgZm9yIGlvcmVx IHNlcnZpY2luZyBqdXN0IGxpa2UgaXQgZG9lcyBmb3IgYW55Cj4+IG90aGVyIGVtdWxhdGVkIE1N SU8gcmFuZ2UsIHZpYSBtYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKCkuIEFsbAo+PiBjaGFu Z2VzIGluIE1NQ09ORklHIHBsYWNlbWVudC9zdGF0dXMgd2lsbCBsZWFkIHRvIHJlbWFwcGluZy91 bm1hcHBpbmcKPj4gdGhlIE1NSU8gcmFuZ2UuCj4+IAo+PiAyLiBYZW4gd2lsbCB0cmFwIE1NSU8g YWNjZXNzZXMgdG8gdGhpcyBhcmVhIGFuZCBmb3J3YXJkIHRoZW0gdG8gUUVNVQo+PiBhcyBNTUlP IChJT1JFUV9UWVBFX0NPUFkpIGlvcmVxcwo+PiAKPj4gMy4gUUVNVSB3aWxsIHJlY2VpdmUgdGhl c2UgYWNjZXNzZXMgYW5kIHBhc3MgdGhlbSB0byB0aGUgZXhpc3RpbmcKPj4gTU1DT05GSUcgZW11 bGF0aW9uIC0tIHBjaWVfbW1jZmdfZGF0YV9yZWFkL3dyaXRlIGhhbmRsZXJzLCBmaW5hbGx5Cj4+ IHJlc3VsdGluZyBpbiBzYW1lIHhlbl9ob3N0X3BjaV8qIGZ1bmN0aW9uIGNhbGxzIGFzIGJlZm9y ZS4KPj4gCj4+IFRoaXMgYXBwcm9hY2ggd29ya3MgInJpZ2h0IG91dCBvZiB0aGUgYm94Iiwgbm8g Y2hhbmdlcyBuZWVkZWQgZm9yCj4+IGVpdGhlciBYZW4gb3IgUUVNVS4gQXMgYm90aCBfUENJX0NP TkZJRyBhbmQgTU1JTyB0eXBlIGlvcmVxcyBhcmUKPj4gcHJvY2Vzc2VkLCBlaXRoZXIgbWV0aG9k IGNhbiBiZSB1c2VkIHRvIGFjY2VzcyBQQ0kvZXh0ZW5kZWQgY29uZmlnCj4+IHNwYWNlIC0tIENG OC9DRkMgcG9ydCBJL08gb3IgTU1JTyBhY2Nlc3NlcyB0byBNTUNPTkZJRy4KPj4gCj4+IElPUkVR IHJvdXRpbmcgZm9yIG11bHRpcGxlIGRldmljZSBlbXVsYXRvcnMgY2FuIGJlIHN1cHBvcnRlZCB0 b28uIEluCj4+IGZhY3QsIHRoZSBzYW1lIG1tY29uZmlnIGRtb3BzL2h5cGVyY2FsbHMgY2FuIGJl IGFkZGVkIHRvIGxldCBYZW4ga25vdwo+PiB3aGVyZSBNTUNPTkZJRyBhcmVhIHJlc2lkZXMsIFhl biB3aWxsIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIGZvcndhcmQKPj4gTU1DT05GSUcgTU1JTyBp b3JlcXMgYWNjb3JkaW5nbHkgdG8gQkRGIG9mIHRoZSBhZGRyZXNzLiBUaGUKPj4gZGlmZmVyZW5j ZSB3aXRoIHRoZSBhcHByb2FjaCAjMSBpcyB0aGF0IHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdwo+ PiBjb21wbGV0ZWx5IG9wdGlvbmFsIHdoZW4gd2UgdXNlIE1NSU8gaW9yZXFzIGZvciBNTUNPTkZJ RyBvbiB2YW5pbGxhCj4+IFhlbi9RRU1VLiAgCj4KPkFzIHNhaWQgYWJvdmUsIGlmIHlvdSBmb3J3 YXJkIE1DRkcgYWNjZXNzZXMgYXMgSU9SRVFfVFlQRV9DT1BZIHlvdSBhcmUKPmZvcmNpbmcgZWFj aCBJT1JFUSBzZXJ2ZXIgdG8ga25vdyB0aGUgcG9zaXRpb24gb2YgdGhlIE1DRkcgYXJlYSBpbgo+ b3JkZXIgdG8gZG8gdGhlIGRlY29kaW5nLCB0aGlzIGlzIG5vdCBhY2NlcHRhYmxlIElNTy4KPgo+ PiBUaGUgcXVlc3Rpb24gaXMgd2h5IElPUkVRX1RZUEVfQ09QWSAtPiBJT1JFUV9UWVBFX1BDSV9D T05GSUcKPj4gdHJhbnNsYXRpb24gaXMgYSBtdXN0IGhhdmUgdGhpbmcgYXQgYWxsPyBJdCB3b24n dCBtYWtlIGhhbmRsaW5nCj4+IHNpbXBsZXIuIEZvciBjdXJyZW50IFFFTVUgaW1wbGVtZW50YXRp b24gSU9SRVFfVFlQRV9DT1BZIChNTUlPCj4+IGFjY2Vzc2VzIGZvciBNTUNPTkZJRykgd291bGQg YmUgcHJlZmVyYWJsZSBhcyBpdCBhbGxvd3MgdG8gdXNlIHRoZQo+PiBleGlzdGluZyBjb2RlLiAg Cj4KPkdyYW50ZWQgaXQncyBsaWtlbHkgZWFzaWVyIHRvIGltcGxlbWVudCwgYnV0IGl0J3MgYWxz byBpbmNvcnJlY3QuIFlvdQo+c2VlbSB0byBoYXZlIGluIG1pbmQgdGhlIHBpY3R1cmUgb2YgYSBz aW5nbGUgSU9SRVEgc2VydmVyIChRRU1VKQo+aGFuZGxpbmcgYWxsIHRoZSBkZXZpY2VzLgo+Cj5B bHRob3VnaCB0aGlzIGlzIHRoZSBtb3N0IGNvbW1vbiBzY2VuYXJpbywgaXQncyBub3QgdGhlIG9u bHkgb25lCj5zdXBwb3J0ZWQgYnkgWGVuLiBZb3VyIHByb3Bvc2VkIHNvbHV0aW9uIGJyZWFrcyB0 aGUgdXNhZ2Ugb2YgbXVsdGlwbGUKPklPUkVRIHNlcnZlcnMgYXMgUENJIGRldmljZSBlbXVsYXRv cnMuCj4KPj4gSSB0aGluayBpdCB3aWxsIGJlIHNhZmUgdG8gdXNlIE1NQ09ORklHIGVtdWxhdGlv biBvbiBNTUlPIGxldmVsIGZvcgo+PiBub3cgYW5kIGxhdGVyIGV4dGVuZCBpdCB3aXRoICdzZXRf bW1jb25maWdfJyBkbW9wL2h5cGVyY2FsbCBmb3IgdGhlCj4+ICdtdWx0aXBsZSBkZXZpY2UgZW11 bGF0b3JzJyBJT1JFUV9UWVBFX0NPUFkgcm91dGluZyB0byB3b3JrIHNhbWUgYXMKPj4gZm9yIFBD SSBjb25mLCBzbyBpdCBjYW4gYmUgdXNlZCBieSBYZW5HVCBldGMgb24gUTM1IGFzIHdlbGwuICAK Pgo+SSdtIGFmcmFpZCB0aGlzIGtpbmQgb2YgaXNzdWVzIHdvdWxkIGhhdmUgYmVlbiBmYWlybHkg ZWFzaWVyIHRvCj5pZGVudGlmeSBpZiBhIGRlc2lnbiBkb2N1bWVudCBmb3IgdGhpcyBmZWF0dXJl IHdhcyBzZW50IHRvIHRoZSBsaXN0Cj5wcmlvciB0byBpdCdzIGltcGxlbWVudGF0aW9uLgo+Cj5S ZWdhcmRpbmcgd2hldGhlciB0byBhY2NlcHQgc29tZXRoaW5nIGxpa2UgdGhpcywgSSdtIG5vdCBy ZWFsbHkgaW4KPmZhdm9yLCBidXQgSU1PIGl0IGRlcGVuZHMgb24gaG93IG11Y2ggbmV3IGNvZGUg aXMgYWRkZWQgdG8gaGFuZGxlIHRoaXMKPmluY29ycmVjdCB1c2FnZSB0aGF0IHdvdWxkIHRoZW4g Z28gYXdheSAob3Igd291bGQgaGF2ZSB0byBiZSBjaGFuZ2VkKQo+aW4gb3JkZXIgdG8gaGFuZGxl IHRoZSBwcm9wZXIgaW1wbGVtZW50YXRpb24uCj4KPlRoYW5rcywgUm9nZXIuCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==