From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shahaf Shuler Subject: Re: [RFC] ethdev: introduce DMA memory mapping for external memory Date: Thu, 22 Nov 2018 10:06:49 +0000 Message-ID: References: <6c7243cd-5370-846b-2999-5ae34722f640@intel.com> <1c00477d-266a-400e-44b4-5bcb1f41e4b7@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Olga Shern , Yongseok Koh , "pawelx.wodkowski@intel.com" , "gowrishankar.m@linux.vnet.ibm.com" , "ferruh.yigit@intel.com" , Thomas Monjalon , "arybchenko@solarflare.com" , "shreyansh.jain@nxp.com" To: "Burakov, Anatoly" , "dev@dpdk.org" Return-path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70089.outbound.protection.outlook.com [40.107.7.89]) by dpdk.org (Postfix) with ESMTP id ED84D1B296 for ; Thu, 22 Nov 2018 11:06:51 +0100 (CET) In-Reply-To: <1c00477d-266a-400e-44b4-5bcb1f41e4b7@intel.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" VHVlc2RheSwgTm92ZW1iZXIgMjAsIDIwMTggMTI6NTYgUE0sIEJ1cmFrb3YsIEFuYXRvbHk6DQo+ IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtSRkNdIGV0aGRldjogaW50cm9kdWNlIERNQSBtZW1v cnkgbWFwcGluZyBmb3INCj4gZXh0ZXJuYWwgbWVtb3J5DQo+IA0KPiBPbiAyMC1Ob3YtMTggODow OCBBTSwgU2hhaGFmIFNodWxlciB3cm90ZToNCj4gPiBNb25kYXksIE5vdmVtYmVyIDE5LCAyMDE4 IDc6MTggUE0sIEJ1cmFrb3YsIEFuYXRvbHk6DQo+ID4+IFN1YmplY3Q6IFJlOiBbUkZDXSBldGhk ZXY6IGludHJvZHVjZSBETUEgbWVtb3J5IG1hcHBpbmcgZm9yIGV4dGVybmFsDQo+ID4+IG1lbW9y eQ0KPiA+Pg0KPiA+PiBPbiAxOS1Ob3YtMTggMTE6MjAgQU0sIFNoYWhhZiBTaHVsZXIgd3JvdGU6 DQo+ID4+PiBUaHVyc2RheSwgTm92ZW1iZXIgMTUsIDIwMTggMTowMCBQTSwgQnVyYWtvdiwgQW5h dG9seToNCj4gPj4+PiBTdWJqZWN0OiBSZTogW1JGQ10gZXRoZGV2OiBpbnRyb2R1Y2UgRE1BIG1l bW9yeSBtYXBwaW5nIGZvcg0KPiA+Pj4+IGV4dGVybmFsIG1lbW9yeQ0KPiA+Pj4+DQo+ID4+Pj4g T24gMTUtTm92LTE4IDk6NDYgQU0sIFNoYWhhZiBTaHVsZXIgd3JvdGU6DQo+ID4+Pj4+IFdlZG5l c2RheSwgTm92ZW1iZXIgMTQsIDIwMTggNzowNiBQTSwgQnVyYWtvdiwgQW5hdG9seToNCj4gPj4+ Pj4+IFN1YmplY3Q6IFJlOiBbUkZDXSBldGhkZXY6IGludHJvZHVjZSBETUEgbWVtb3J5IG1hcHBp bmcgZm9yDQo+ID4+Pj4+PiBleHRlcm5hbCBtZW1vcnkNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBPbiAx NC1Ob3YtMTggMjo1MyBQTSwgU2hhaGFmIFNodWxlciB3cm90ZToNCj4gPj4+Pj4+PiBIaSBBbmF0 b2x5LA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gV2VkbmVzZGF5LCBOb3ZlbWJlciAxNCwgMjAxOCAx OjE5IFBNLCBCdXJha292LCBBbmF0b2x5Og0KPiA+Pj4+Pj4+PiBTdWJqZWN0OiBSZTogW1JGQ10g ZXRoZGV2OiBpbnRyb2R1Y2UgRE1BIG1lbW9yeSBtYXBwaW5nIGZvcg0KPiA+Pj4+Pj4+PiBleHRl cm5hbCBtZW1vcnkNCj4gPj4+Pj4+Pj4NCj4gPg0KPiA+IFsuLi5dDQoNClsuLi5dDQoNCj4gPiBJ IHRoaW5rIGl0IHdhcyBicm9rZW4gaW4gc29tZSB3YXkgd2hlbiB5b3UgZGlkIHRoZSBmaXJzdCB3 b3JrIG9uIHRoZSBuZXcNCj4gbWVtb3J5IG1hbmFnZW1lbnQuDQo+ID4gQmVjYXVzZSBhZnRlciB0 aGlzIHdvcmssIFBNRHMgd2VyZSBhZGp1c3RlZCB0byBsb29rIGZvciB0aGUgbWVtb3J5IG9ubHkN Cj4gaW4gdGhlIGZiYXJyYXlzLCBhbmQgc3VjaCBleHRlcm5hbCBtZW1vcnkgZG9lc24ndCBleGlz dHMgdGhlcmUuDQo+ID4gb3RoZXJ3aXNlLCBpZiB3b3JraW5nLCB3aHkgeW91IGFkZGVkIHRoZSBz dXBwb3J0IGZvciB0aGUgZXh0ZXJuYWwNCj4gbWVtb3J5PyBXaGljaCBvdGhlciB1c2UgY2FzZSB5 b3UgdHJpZWQgdG8gY292ZXI/DQo+ID4NCj4gPiBJdCBpcyBmaXhlZCBpbiBzb21lIHdheSB3aXRo IHRoZSBuZXcgd29yayB0byBzdXBwb3J0IGV4dGVybmFsIG1lbW9yeSwgYnV0DQo+IHJlcXVpcmVz IGNoYW5nZXMgaW4gdGhlIGFwcGxpY2F0aW9uICh0aGUgIm92ZXJoZWFkIiBJIHJlZmVycmVkIGJl Zm9yZSkuDQo+IA0KPiBJIGZlZWwgd2UgaGF2ZSBhIGRpZmZlcmVuY2Ugb2YgdGVybWlub2xvZ3kg aGVyZS4NCj4gDQo+IFdoYXQgaSByZWZlciB0byBhcyAiZXh0ZXJuYWwgbWVtb3J5IHN1cHBvcnQi IGlzIHRoZSBmZWF0dXJlIHRoYXQgd2FzIGFkZGVkDQo+IGluIDE4LjExLCB0aGF0IGhhcyB0byBk byB3aXRoIGNyZWF0aW5nIGhlYXBzIGV0Yy4gLSB0aGlzIG1lbW9yeSBpcyBub3cNCj4gKGhvcGVm dWxseSkgcHJvcGVybHkgc3VwcG9ydGVkIGFjcm9zcyBlbnRpcmUgRFBESy4NCj4gDQo+IFdoYXQg eW91J3JlIHByb2JhYmx5IHJlZmVycmluZyB0byBhcyAiZXh0ZXJuYWwgbWVtb3J5IHN1cHBvcnQi IGlzIG5vdCB0aGF0IC0NCj4gaXQncyB0aGUgZmVhdHVyZSBvZiBtZW1wb29scywgcmluZ3MgZXRj LiB0aGF0IGFsbG93IHlvdSB0byB1c2UgbWVtb3J5IHRoYXQncw0KPiBub3QgcmVnaXN0ZXJlZCB3 aXRoIGFuZCBub3QgbWFuYWdlZCBieSBEUERLLiBUaGlzIGlzIHRoZSB3YXkgImV4dGVybmFsDQo+ IG1lbW9yeSIgd2FzIGRvbmUgcHJpb3IgdG8gMTguMTEuDQoNCkkgdGhvdWdodCB0aGUgMTguMTEg ZmVhdHVyZSBzaG91bGQgc2VydmUgYm90aCBjYXNlcy4gDQpUbyB1c2UgbWVtb3J5IG5vdCBtYW5h Z2VkIGJ5IERQREsgdXNlciBzaG91bGQgY3JlYXRlIGhlYXAgYW5kIHBvcHVsYXRlIGl0IHcvIHRo ZSBtZW1vcnksIHNvIHRoYXQgaXQgY2FuIHVzZSBpdCBsYXRlciBmb3IgbWVtcG9vbC9yaW5ncy4g DQoNCj4gDQo+IFRoZSBhYm92ZSBzY2VuYXJpbyAod29ya2luZyB3aXRoIGFub255bW91cyBtZW1v cnkgaW4gbWVtcG9vbHMpIGlzIHN0aWxsDQo+ICJicm9rZW4iIGluIHRoaXMgc2Vuc2UgLSBhbmQg aSBzZWUgbm8gZ2VuZXJhbCB3YXkgdG8gZml4IGl0LiBJdCBjb3VsZCB3b3JrIHdpdGgNCj4gbWVt cG9vbHMgaW4gdGhhdCB3ZSBjb3VsZCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBuZXcgaGVhcHMgYmVo aW5kIHRoZQ0KPiBzY2VuZXMgYW5kIHBvcHVsYXRlIHRoZW0gd2l0aCBuZXcgbWVtb3J5LCBidXQg Zm9yIG90aGVyIGRhdGEgc3RydWN0dXJlcw0KPiAoZS5nLiBydGVfcmluZ19pbml0KCkgb3ZlciBh bm9ueW1vdXMgbWVtb3J5KSwgaXQncyBqdXN0IG5vdCBwb3NzaWJsZSB0byBkbw0KPiB0aGF0Lg0K PiANCj4gSSBwZXJzb25hbGx5IHdvdWxkIHByZWZlciB0aGVzZSBBUEkncyB0byBqdXN0IGdvIGF3 YXkgYW5kIHBlb3BsZSBzdGFydGVkDQo+IHVzaW5nIHRoZSAib2ZmaWNpYWwiIHdheSB0byBtYW5h Z2UgZXh0ZXJuYWwgbWVtb3J5LiBSZW1vdmluZyB0aGUgQVBJJ3MgbWF5DQo+IGV2ZW4gYmUgZmVh c2libGUgZm9yIGV2ZXJ5dGhpbmcgYmFyIG1lbXBvb2wsIGFuZCBtZW1wb29sIHN1cHBvcnQgd2Ug Y2FuDQo+IG1hbmFnZSBtb3JlLW9yLWxlc3MgYXV0b21hdGljYWxseSBpbiB0aGUgYWJvdmUgd2F5 IChieSBhdXRvbWF0aWNhbGx5DQo+IGNyZWF0aW5nIGFuIGV4dGVybmFsIGhlYXAgYmVoaW5kIHRo ZSBzY2VuZXMpLiBCdXQgdGhlbiBieSB0aGUgdGltZSB3ZSdyZQ0KPiBjcmVhdGluZy9hZGRpbmcg ZXh0ZXJuYWwgbWVtb3J5IGhlYXBzIGluc2lkZSBtZW1wb29sIEFQSSdzLCB5b3UgZG9uJ3QNCj4g cmVhbGx5IG5lZWQgdGhlIGV4dGVybmFsIG1lbW9yeSBETUEgbWFwcGluZyBBUEkgY2FsbHMgYmVj YXVzZSB0aGUNCj4gbWVtcG9vbCB3b3VsZCBkbyB0aGF0IGF1dG9tYXRpY2FsbHkgYnkgd2F5IG9m IHVzaW5nIHRoZSBleHRlcm5hbCBoZWFwcw0KPiBBUEkuDQoNClllcywgb25lIHdheSB0byBnbyBp cyB0byBtYXAgdGhlIG1lbW9yeSBpbnRlcm5hbGx5IGluc2lkZSB0aGUgbWVtcG9vbCBjcmVhdGlv bi4gQnV0IGl0IHdpbGwgbm90IHdvcmsgZm9yIGFsbCBjYXNlcy4NCkZvciBleGFtcGxlLCBpZiBh cHBsaWNhdGlvbiB3YW50cyB0byB3b3JrIHcvIG1idWYgd2l0aCBleHRlcm5hbCBidWZmZXIgKEVY VF9BVFRBQ0hFRF9NQlVGKSwgdGhlIGJ1ZmZlciB3aWxsIGJlIGF0dGFjaGVkIG9uIGEgZGlmZmVy ZW50IGNhbGwgKHJ0ZV9wa3RtYnVmX2F0dGFjaF9leHRidWYpLCBzbyB3ZSB3aWxsIG5lZWQgdG8g aGFuZGxlIHRoYXQgYXMgd2VsbC4NCk1heWJlIHdlIHdpbGwgZmluZCBtb3JlIGNhc2VzIGluIHRo ZSBmdXR1cmUuIGkgd291bGQgcHJlZmVyIHRvIHNvbHZlIGl0IGZvciBhbGwgY2FzZXMuICBTZWUg bW9yZSBiZWxvdy4gDQoNCj4gDQo+IEluIG90aGVyIHdvcmRzLCB0aGUgcHJvYmxlbSBoZXJlIGlz bid0IHNvIG11Y2ggdXNhYmlsaXR5IGFzIGl0IGlzIHRoZSBmYWN0IHRoYXQsDQo+IGZvciBzb21l IHN0dWZmLCBhIGxvdCBvZiBpbnRlcm5hbCBjb2RlIG5vdyByZWxpZXMgb24gRFBESydzIGludGVy bmFsIHBhZ2UNCj4gdGFibGVzLCBhbmQgd2UgaGF2ZSB0byBlaXRoZXIgbWFrZSBhbGxvd2FuY2Vz IGZvciB0aGF0IG9uIGEgY2FzZS1ieS1jYXNlDQo+IGJhc2lzIChieSB0aGUgd2F5LCBubyBvbmUg Y2FtZSB0byBtZSB3aXRoIHRoZXNlIGlzc3VlcyEpLCANCg0KT25lIG9wdGlvbiBpcyBjYXNlIGJ5 IGNhc2UsIG90aGVyIGNhbiBiZSB0byBhbGxvdyB0aGUgYXBwbGljYXRpb24gdG8gZXhwbGljaXQg bWFwIHRoaXMgbWVtb3J5IHRvIHRoZSBkaWZmZXJlbnQgZGV2aWNlcy4gDQoNCm9yIGFkbWl0IHRo YXQgdXNpbmcNCj4gdW5yZWdpc3RlcmVkIG1lbW9yeSBpcyBhIGJhZCBpZGVhIGFuZCBsZXQncyBu b3QgZG8gdGhhdCBpbiB0aGUgZnV0dXJlLg0KDQpJIHRoaW5rIGl0IGlzIHVuLWF2b2lkYWJsZSAo dG8gdXNlIHVucmVnaXN0ZXJlZCBtZW1vcnkpLiBUaGUgdXNlIGNhc2UgZXhpc3RzLCB0aGVyZSBh cmUgYXBwbGljYXRpb25zIHdoaWNoIHByZWZlciB0byBoYXZlIHRoZWlyIG93biBtZW1vcnkgbWFu YWdlbWVudC4gDQpGb3IgdGhvc2UgYXBwcywgd2UgbmVlZCB0byBoYXZlIGEgc29sdXRpb24uIA0K DQo+IA0KPiA+DQo+ID4+DQo+ID4+IE9uIHRoZSBvdGhlciBoYW5kLCBpZiB5b3Ugd2VyZSB0byB1 c2UgaXQgaW4gYSBkaWZmZXJlbnQgd2F5IC0gZm9yDQo+ID4+IGV4YW1wbGUsIGFsbG9jYXRpbmcg aGFzaCB0YWJsZXMgb3Igb3RoZXIgRFBESyBkYXRhIHN0cnVjdHVyZXMgLSB0aGVuDQo+ID4+IHN1 Y2ggYSBmZWF0dXJlIGlzIGVzc2VudGlhbC4NCj4gPg0KPiA+IEhhc2ggdGFibGVzIHRoYXQgdGhl IE5JQyBuZWVkcyB0byByZWFkL3dyaXRlIHRvL2Zyb20/DQo+ID4gSSBkaWRuJ3QgZ2V0IHRoZSBw b2ludCBoZXJlLg0KPiANCj4gVGhlIHBvaW50IHdhc24ndCBoYXNoIHRhYmxlcywgYnV0IHN1cHBv cnQgZm9yIHVzZSBjYXNlcyB3ZSBtaWdodCBub3QgaGF2ZQ0KPiB0aG91Z2h0IG9mLiBUaGF0IGlu Y2x1ZGVzIGRvaW5nIHN0cmFuZ2UgdGhpbmdzIGxpa2UgYWxsb2NhdGluZyBEUERLIGRhdGENCj4g c3RydWN0dXJlcyBpbiBub24tc3RhbmRhcmQgbWVtb3J5IGxvY2F0aW9ucy4NCj4gDQo+ID4NCj4g PiBUaGUgZW50aXJlIHBvaW50IHdhcyB0byBhbGxvdyB1c2luZyBleHRlcm5hbCBtZW1vcnkgd2l0 aA0KPiA+PiBzZW1hbnRpY3MgaWRlbnRpY2FsIHRvIGhvdyB5b3UgdXNlIHRoZSByZXN0IG9mIERQ REsuDQo+ID4NCj4gPiBJIHVuZGVyc3RhbmQgdGhpcyBkZXNpZ24gY2hvaWNlLCBhbmQgaXQgaGFz IHRoZSBiZW5lZml0IG9mIGNvbnNpc3RlbmN5IHYucy4NCj4gbW9yZSBBUEkgY2FsbCBvbiB0aGUg YXBwbGljYXRpb24gc2lkZS4NCj4gPg0KPiA+Pg0KPiA+PiBBbHNvLCB3aGV0aGVyIGl0J3MgImlu dHVpdGl2ZSIgZGVwZW5kcyBvbiBwZXJzcGVjdGl2ZSAtIHlvdSBzYXkgImkNCj4gPj4gZXhwZWN0 IHRvIGFsbG9jYXRlIG1lbW9yeSBhbmQgbWFwIGl0IGZvciBETUEgbXlzZWxmIiwgaSBzYXkgIndo eSBkbyBpDQo+ID4+IGhhdmUgdG8gY2FyZSBhYm91dCBETUEgbWFwcGluZywgRFBESyBzaG91bGQg ZG8gdGhpcyBmb3IgbWUiIDopDQo+ID4NCj4gPiBSaWdodCDwn5iKLiBXZSBzaG91bGQgYmUgZHJp dmVuIGJ5IGN1c3RvbWVycyBhbmQgbm90IHZlbmRvcnMsIHRvbyBiYWQgdGhlcmUNCj4gaXMgbm8g bXVjaCBmZWVkYmFjayBmcm9tIHRoZW0gb24gdGhlIGNvbW11bml0eS4NCj4gDQo+IFRoYXQgaW1w bGllcyBjdXJyZW50IGRlc2lnbiAqd2Fzbid0KiBkcml2ZW4gYnkgY3VzdG9tZXJzLCB3aGljaCBp cyBub3QgdHJ1ZS4NCj4gVGhleSBtYXkgbm90IGJlIHRoZSBzYW1lIGFzIG9uZXMgeW91IGFyZSBh d2FyZSBvZiAtIGJ1dCB0aGVuIHRoaXMgaXNuJ3QgcmVhbGx5DQo+IG15IGZhdWx0IDopDQo+IA0K PiA+IEkga25vdyBmcm9tIFZQUCBzaWRlIHRoZXkgcHJlZmVyIG5vdCB0byB1c2UgdGhlIHJ0ZV9z b2NrZXQgcmF0aGVyIHRvDQo+IG1hbmFnZSB0aGUgbWVtb3J5IGJ5IHRoZW0gc2VsZiwgYW5kIHRo ZXkgYXJlIHBlcmZlY3RseSBmaW5lIHdpdGggbWFwcGluZw0KPiBpdCBleHBsaWNpdGx5LiBUaGlz IGlzIHRydWUgZm9yIG90aGVyIGNvbXBhbnkgdGhhdCBoYXMgdnN3aXRjaCBzb2x1dGlvbiAod2hp Y2ggSQ0KPiBjYW5ub3QgbWVudGlvbiBieSBuYW1lKS4NCj4gDQo+IFdlbGwsIGl0J3Mgbm90IGxp a2UgaSBjYW4gZG8gYW55dGhpbmcgaWYgbm8gb25lIGZyb20gZWl0aGVyIGNvbW11bml0aWVzIGNv bWVzDQo+IGhlcmUgYW5kIGVuZ2FnZXMgaW4gdGhlIGRpc2N1c3Npb24uIEkgd2lzaCBpIGNvdWxk IHJlYWQgcGVvcGxlJ3MgbWluZHMsIGJ1dA0KPiBhbGFzIDopDQo+IA0KPiA+DQo+ID4NCj4gPiBJ ZiB5b3UgYXJlIHVzaW5nIHlvdXINCj4gPj4gb3duIG1lbW9yeSBtYW5hZ2VtZW50IGFuZCBkb2lu ZyBldmVyeXRoaW5nIG1hbnVhbGx5IC0geW91IGdldCB0bw0KPiBtYXANCj4gPj4gZXZlcnl0aGlu ZyBmb3IgRE1BIG1hbnVhbGx5LiBJZiB5b3UgYXJlIHVzaW5nIERQREsgZmFjaWxpdGllcw0KPiA+ PiAtIGl0IGlzIGludHVpdGl2ZSB0aGF0IGZvciBhbnkgRFBESy1tYW5hZ2VkIG1lbW9yeSwgaW50 ZXJuYWwgb3INCj4gPj4gZXh0ZXJuYWwsIHNhbWUgcnVsZXMgYXBwbHkgYWNyb3NzIHRoZSBib2Fy ZCAtIERNQSBtYXBwaW5nIGluY2x1ZGVkLg0KPiA+DQo+ID4gU28gaWYgdW5kZXJzdGFuZCB5b3Ug cG9pbnQgaGVyZSwgeW91ciBjbGFpbSAid2UgbmVlZCBib3RoIi4gT25lIGZvciB1c2Vycw0KPiB3 aGljaCBwcmVmZXIgdGhlIERQREsgdG8gZG8gdGhhdCBmb3IgdGhlbSBhbmQgdGhlIG90aGVyIGZv ciB0aGUgdXNlcnMgd2hvDQo+IHdhbnRzIG1vcmUgY29udHJvbC4NCj4gPiBIb3dldmVyLCB3aGVu IGtlZXBpbmcgdGhlIEFQSSBvZiBleHBsaWNpdCBtYXBwaW5nLCB3ZSBjYW4gbm8gbG9uZ2VyIHNh eQ0KPiB0aGF0IGV4dGVybmFsIG1lbW9yeSBpcyBiZWhhdmVzIGV4YWN0bHkgdGhlIHNhbWUgYXMg aW50ZXJuYWwuDQo+IA0KPiBXZWxsLCBtb3JlIG9yIGxlc3MgdGhhdCwgeWVzLiBJdCB3b3VsZCBi ZSBnb29kIHRvIGhhdmUgZnVsbCBzdXBwb3J0IGZvcg0KPiAiZXh0ZXJuYWwiIG1lbW9yeSAoaW4g dGhlICJ1bnJlZ2lzdGVyZWQgd2l0aCBEUERLIiBzZW5zZSwgYXMgb3V0bGluZWQNCj4gYWJvdmUp Lg0KPiANCj4gPg0KPiA+IFNvIGdvaW5nIGJhY2sgdG8gbXkgUkZDIPCfmIosIGlmIHdlIGRlY2lk ZSB0byBrZWVwIGJvdGggYXBwcm9hY2gsIHdoYXQgSQ0KPiBzdWdnZXN0IGlzIHRvIGNoYW5nZSB0 aGUgVkZJTyBtYXBwaW5nIG9uZSB0byBiZSBtb3JlIGdlbmVyaWMgYW5kIHBlcg0KPiBkZXZpY2Ug KGNhbiBiZSBydGVfZGV2aWNlKS4NCj4gPiBJIHRoaW5rIHRoZSBiaWdnZXN0IHF1ZXN0aW9ucyB3 ZSBuZWVkIHRvIGFuc3dlciBhcmUgMS4gYXJlIHdlIE9LIHdpdGgNCj4gPiBnZW5lcmljLCB2ZW5k b3IgYWdub3N0aWMgQVBJPw0KPiANCj4gWWVzLCBnZW5lcmljIGFuZCB2ZW5kb3ItYWdub3N0aWMg RlRXIQ0KPiANCj4gPiAyLiAgYXJlIHdlIE9LIHRoYXQgdGhlIGV4cGxpY2l0IG1hcHBpbmcgaXMg ZG9uZSBwZXIgZGV2aWNlPw0KPiANCj4gVGhpcyBxdWVzdGlvbiBpcyBzbGlnaHRseSBtaXNsZWFk aW5nLCBiZWNhdXNlIHRoYXQncyBub3QgKmFsbCogdGhlcmUgaXMgdG8gaXQuIEluDQo+IGdlbmVy YWwsIHllcywgaSdtIE9LIHdpdGggdGhlIGlkZWEuIEluIHByYWN0aWNlLCBWRklPIG1heSBnZXQg aW4gdGhlIHdheS4NCj4gDQo+IFZGSU8gd29ya3MgYnkgbWFwcGluZyBtZW1vcnkgZm9yIGEgVkZJ TyBjb250YWluZXIuIFRoZSBjb250YWluZXIgY2FuDQo+IGhhdmUgb25lIG9yIG1vcmUgZGV2aWNl cyBpbiBpdCwgYW5kIGhvdyBtYW55IGRldmljZXMgaXQgY2FuIGhhdmUgZGVwZW5kcw0KPiBvbiB0 aGUgSU9NTVUgc2V0dXAgKGkuZS4gaXQgbWF5IG5vdCBiZSBwb3NzaWJsZSB0byBoYXZlIG9uZSBk ZXZpY2UgcGVyDQo+IGNvbnRhaW5lciBvbiBzb21lIHNldHVwcywgd2hpY2ggaXMgd2h5IGN1cnJl bnRseSBldmVyeXRoaW5nIGlzIGRvbmUgd2l0aA0KPiBvbmUgY29udGFpbmVyKS4NCg0KDQogU28s ICJwZXItZGV2aWNlIiBtZWFucyB3ZSBlaXRoZXIga2VlcCBlYWNoIGRldmljZSBpbg0KPiBzZXBh cmF0ZSBjb250YWluZXIgKHdoaWNoIHdpbGwgbm90IHdvcmsgaW4gc29tZSBjYXNlcyksIA0Kb3Ig d2Ugc29tZWhvdw0KPiB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0IG1hcHBpbmdzIGNhbiBiZSBw ZXJmb3JtZWQgb25seSBvbmNlIChpJ20gbm90DQo+IHN1cmUgaWYgVkZJTyB3aWxsIHJldHVybiBh cHByb3ByaWF0ZSBlcnJvciBjb2RlcyB0aGF0IHdvdWxkIGFsbG93IHVzIHRvDQo+IGRpc3Rpbmd1 aXNoIGZhaWxlZCBtYXBwaW5ncyBkdWUgdG8gZHVwbGljYXRlLCBvciBmYWlsZWQgbWFwcGluZ3Mg ZHVlIHRvIG90aGVyDQo+IHJlYXNvbnMgLSBpJ2xsIGhhdmUgdG8gcmVzZWFyY2ggdGhpcyksIGFu ZCBrZWVwIGFsbCBkZXZpY2VzIGluIHRoZSBzYW1lDQo+IGNvbnRhaW5lci4NCg0KWWVzIEkgc2Vl IGhlcmUgMiBvcHRpb25zOg0KMS4gdGhlIFZGSU8gaGFzIGdvb2QgZXJyb3IgcmVwb3J0cyB0aGF0 IGVuYWJsZXMgdGhlIHVzZXIgdG8gdW5kZXJzdGFuZCBtYXBwaW5nIGZhaWxlZCBiZWNhdXNlIGl0 IGlzIGFscmVhZHkgZXhpc3RzLiANCjIuIHRvIGhvbGQgZGF0YWJhc2Ugd2hpY2ggd2lsbCBzYXkg d2hpY2ggSU9WQSB3ZXJlIGFscmVhZHkgbWFwcGVkIHNvIHRoZSBEUERLIHZmaW8gbWFwcGluZyB3 aWxsIGtub3cgdG8gYXZvaWQgaXQuIA0KDQo+IA0KPiBJbiBvdGhlciB3b3JkcywgaXQgbWF5IGJl IHBvc3NpYmxlIHRvIHNvbHZlIHRoaXMgaXNzdWUgZm9yIFZGSU8sIGJ1dCBpIHdvdWxkIG5vdA0K PiBiZSBjb21mb3J0YWJsZSB0byBwcm9jZWVkIHdpdGhvdXQga25vd2luZyB0aGF0IHRoaXMgY2Fu IGJlIGRvbmUgaW4gYSBzYW5lDQo+IHdheS4NCg0KKzEuDQoNCkkgdGhpbmsgdGhlIHNpbXBsZXN0 IGlzICMxIGFib3ZlLiBIb3cgY2FuIHdlIGdldCBhbiBhbnN3ZXIgb24gaXQ/IA0KDQo+IA0KPiBU aGVyZSdzIGFsc28gYSBxdWVzdGlvbiBvZiBhdXRvbWF0aWMgdnMuIG1hbnVhbCBtYXBwaW5nLiBU aGUgd2F5IGkgc2VlIGl0LA0KPiB0aGUgY2hvaWNlcyBhcmU6DQo+IA0KPiAxKSBkcm9wIGF1dG9t YXRpYyByZWdpc3RyYXRpb24gZm9yIERNQSBhbHRvZ2V0aGVyLCBmb3IgYm90aCBpbnRlcm5hbCBh bmQNCj4gZXh0ZXJuYWwgbWVtb3J5DQo+IDIpIGRyb3AgYXV0b21hdGljIHJlZ2lzdHJhdGlvbiBm b3IgRE1BIGZvciBleHRlcm5hbCBtZW1vcnkgb25seSwgYnV0IGtlZXANCj4gYXV0b21hdGljIERN QSByZWdpc3RyYXRpb24gZm9yIGludGVybmFsIG1lbW9yeQ0KPiAzKSBkbyBhdXRvbWF0aWMgRE1B IHJlZ2lzdHJhdGlvbiBmb3IgYm90aA0KPiANCj4gSSBkb24ndCBsaWtlIHRoZSBzZWNvbmQgY2hv aWNlIGZvciBBUEkgY29uc2lzdGVuY3kgcmVhc29ucywgc28gaSB3b3VsZCByYXRoZXINCj4gZ28g ZWl0aGVyIGZvciAxKSAoYW5kIGNhdXNlIG1hc3NpdmUgYnJlYWthZ2Ugb2YgYWxsIGV4aXN0aW5n IGFwcGxpY2F0aW9ucyBhbG9uZw0KPiB0aGUgd2F5Li4uKSwgb3IgMykgKHRoZSB3YXkgaXQncyB3 b3JraW5nIHJpZ2h0IG5vdykuDQo+IFRoZSBwcmFnbWF0aWMgY2hvaWNlICptYXkqIGJlIDIpLCB3 aGljaCBpcyB3aGF0IGkgZmVlbCB5b3UgYXJlIGFkdm9jYXRpbmcNCj4gZm9yLCBidXQgaXQgaGFz IGl0cyBvd24gcHJvYmxlbXMsIG1haW5seSB0aGUgbWVjaGFuaWNzIG9mIGl0Lg0KPiBJZiB3ZSBj YW4gZ2V0IHRoZW0gd29ya2VkIG91dCwgaSBtYXkganVzdCBiaXRlIHRoZSBidWxsZXQgYW5kIGFj ayB0aGUgcGF0Y2hlcw0KPiDwn5iDDQoNCkkgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0byBkbyBzdWNo IGV4dGVuc2l2ZSBjaGFuZ2VzLiANCg0KSSB0aGluayBpdCBpcyBvayB0byBoYXZlIDIgd2F5cyBm b3IgYXBwbGljYXRpb24gdG8gd29yayAodGhlIGhlYXBzIGFuZCB0aGUgZXhwbGljaXQgRE1BIGNh bGwpLiBBZnRlciBhbGwsIERQREsgaXMgYSBkZXZlbG9wbWVudCBraXQgYW5kIHdlIHNob3VsZCBt YWtlIGFwcGxpY2F0aW9uIGxpZmUgZWFzaWVyIGZvciBkaWZmZXJlbnQgdXNlIGNhc2VzLiANCklm IHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0aGUgRFBESyB0byBoZWxwLCBpdCBjYW4gY3JlYXRlIHRo ZSBoZWFwIGFuZCBldmVyeXRoaW5nIHdpbGwganVzdCBoYXBwZW4uIE90aGVyd2lzZSBhcHBsaWNh dGlvbiB3aWxsIGRvIHRoZSBtZW1vcnkgbWFuYWdlbWVudCBieSBpdHNlbGYsIGFuZCB1c2UgdGhl IERNQSBjYWxsIGV4cGxpY2l0bHkuIA0KDQo+IA0KPiBTcGVjaWZpY2FsbHksIGxldCdzIHN1cHBv c2Ugd2Ugd2FudCBhdXRvbWF0aWMgbWVtb3J5IHJlZ2lzdHJhdGlvbiBmb3IgRE1BDQo+IG9uIGlu dGVybmFsIGJ1dCBub3QgZXh0ZXJuYWwgbWVtb3J5LiBIb3cgZG9lcyBpdCBoYXBwZW4/IEN1cnJl bnRseSwgaXQNCj4gaGFwcGVucyB2aWEgbWVtIGV2ZW50IGNhbGxiYWNrcy4NCj4gDQo+IElmIHdl IHdlcmUgdG8gZHJvcCB0aGUgY2FsbGJhY2sgYXBwcm9hY2ggZm9yIGV4dGVybmFsIG1lbW9yeSwg d2Ugd291bGQNCj4gbG9zZSBvdXQgb24gYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IHByb3ZpZGVk IGJ5IHNhaWQgY2FsbGJhY2tzLCBhbmQgaSB3b3VsZA0KPiByZWFsbHkgbGlrZSB0byBhdm9pZCB0 aGF0Lg0KPiANCj4gSWYgd2Ugd2VyZSB0byBzd2l0Y2ggdG8gbWFudWFsIG1hcHBpbmcsIHRoYXQg bWVhbnMgRUFMIHdpbGwgZGVwZW5kIG9uDQo+IGV0aGRldiAoeW91IGhhdmUgc3VnZ2VzdGVkIHJ0 ZV9kZXZpY2UgYXMgYW4gYWx0ZXJuYXRpdmUgLSB3b3VsZCB0aGF0IGZpeCB0aGUNCj4gaXNzdWU/ KQ0KDQpObyBpdCB3b24ndC4NCkl0IHdpbGwgaGVscCBvbmx5IGZvciB0aGUgY2FzZXMgd2VyZSB3 ZSBoYXZlIG11bHRpcGxlIGRldmljZXMgb24gdGhlIHNhbWUgUENJIGFkZHJlc3MgKGxpa2UgcmVw cmVzZW50b3JzKS4gDQoNCiwgYW5kIHdlIHdpbGwgaGF2ZSB0byByZXdyaXRlIGN1cnJlbnQgRE1B IG1hcHBpbmcgY29kZSB0byBkbw0KPiBtYXBwaW5ncyBleHBsaWNpdGx5LCByYXRoZXIgdGhhbiBy ZWx5aW5nIG9uIGNhbGxiYWNrcyBtZWNoYW5pc20uIFNvLCBpbnN0ZWFkDQo+IG9mIGUuZy4gVkZJ TyBtYXBwaW5nIGJlaW5nIHBlcmZvcm1lZCB2aWEgY2FsbGJhY2ssIHdlIHdvdWxkIGluc3RlYWQg aXRlcmF0ZQ0KPiBvdmVyIGVhY2ggcnRlX2RldmljZSBhbmQgY2FsbCBpdHMgcmVzcGVjdGl2ZSBE TUEgbWFwcGluZyBmdW5jdGlvbiBleHBsaWNpdGx5IC0NCj4gZm9yIGludGVybmFsIG1lbW9yeSwg YnV0IG5vdCBmb3IgZXh0ZXJuYWwuIFRoaXMNCj4gKm1heSogd29yaywgYnV0IGkgbmVlZCB0byB0 aGluayBpdCB0aHJvdWdoIGEgYml0IG1vcmUgOikNCj4gDQo+IFRoaXMgYWxzbyBzdGlsbCBsZWF2 ZXMgYSBxdWVzdGlvbiBvZiBleHRlcm5hbCB1bnJlZ2lzdGVyZWQgbWVtb3J5IC0gdGhpcyBpcyBh DQo+IHdob2xseSBzZXBhcmF0ZSBpc3N1ZS4NCj4gDQo+IFRMO0RSIGknbSB0ZW50YXRpdmVseSBP SyB3aXRoIHRoZSBwcm9wb3NhbCwgYnV0IHdlIG5lZWQgdG8gd29yayBjZXJ0YWluDQo+IHRoaW5n cyBvdXQgYmVmb3JlIHdlIGdvIHRvbyBmYXIgYWxvbmcgdGhlIHBhdGggYW5kIGZpbmQgb3V0IHRo YXQgd2UndmUNCj4gcmVhY2hlZCBhIGRlYWQgZW5kLg0KDQpGdWxseSBhZ3JlZSwgdGhpcyBpcyB3 aHkgdGhlIFJGQyBpcyBmb3IuDQpJIHRoaW5rIG91ciBiaWdnZXN0IHF1ZXN0aW9uIGlzIHdoZXRo ZXIgb3Igbm90IFZGSU8gd2lsbCBiZWhhdmUgT0sgd2l0aCBkb3VibGUgbWFwcGluZyBvciB3ZSBu ZWVkIHNvbWUgdHJhY2tpbmcgbWVjaGFuaXNtIGluIERQREsuDQoNCj4gDQo+IC0tDQo+IFRoYW5r cywNCj4gQW5hdG9seQ0K