From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40079.outbound.protection.outlook.com [40.107.4.79]) by dpdk.org (Postfix) with ESMTP id D87984CB5 for ; Thu, 15 Nov 2018 10:46:15 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kKWGV9ZEsAdcWrL+jw4jkKFQ6Cp2Nhb1i7/VNJwEtpM=; b=rE8hgMc+01vVcVNcroSs1LXc6B0vQZcV/qL+PaOzk5iAL82JYwLgL8LhjA2SpHNmvy9cDDaJG0OMnaPBoPT9lc1V/ICUMyq6RbocdrrFnjEltr7cm6S3MA8+x4wzpoR/dXTa/FSf+bqcGvZ1Xz8HcmPQWkr8+D7ccFOVrDNVMXM= Received: from DB7PR05MB4426.eurprd05.prod.outlook.com (52.134.109.15) by DB7PR05MB5495.eurprd05.prod.outlook.com (20.177.192.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.20; Thu, 15 Nov 2018 09:46:14 +0000 Received: from DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::bc22:c2f5:208d:826f]) by DB7PR05MB4426.eurprd05.prod.outlook.com ([fe80::bc22:c2f5:208d:826f%2]) with mapi id 15.20.1294.045; Thu, 15 Nov 2018 09:46:14 +0000 From: Shahaf Shuler To: "Burakov, Anatoly" , "dev@dpdk.org" 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" Thread-Topic: [RFC] ethdev: introduce DMA memory mapping for external memory Thread-Index: AQHUfAvf4jIdUz85H0GyxZG2DmtVfqVPTGBQgAA0OwCAARQOsA== Date: Thu, 15 Nov 2018 09:46:14 +0000 Message-ID: References: <6c7243cd-5370-846b-2999-5ae34722f640@intel.com> In-Reply-To: <6c7243cd-5370-846b-2999-5ae34722f640@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; x-originating-ip: [31.154.10.105] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB5495; 6:JOpWKlSyf+fFA3x5ZfCigotEVfwVwhvFY7LehqZocbGE8uK0QfmXf2XBr0evQsxUJFcc3NFRWjqMq6Kb8KP3LsaNcW/el9mPpEu0f+35ik3BVoIoLjL0iJtf9Ano/gHSPIJ+sn1V5b8w3CE64PezZMmmN/eIHF96HiYhnKCzLnaHRfracvZXOlH/P59THtEP2APgMCBfg90ijUw2gRs0nCCE0ZBjPLAqvqaqPLYt5xW8q2FQ1Q7X5ea5eyy11HE5YWUblIn7PbWu+Z1duJZpBEDf3+PZOWQ6jg9SR1sJQurh8xHfw1QB+re8aDay1qe/T1q2HnSXC8Gs2enbwNT5Gz3Ls86YeD66Guv2fALq4/31S2vUEGrSCcctJXl/V3CGJU/BroGG1gLtNhzXo0IYMNDCDoivLtOLSALC6E1tg4dCQQOhlCRkooWl15bFauVwUpdx4SpG1Ofc2kXXn8KG1Q==; 5:kgf1dm+1MxOlxpwOnxFCttL3Hdtbt9G/KTyfmKuvw4iPJqQ8fgDlYFa9E1g4ftjFVsyr2ag+9JiyR4Ul216tvpwq+U2Ht+I4Pf3Gb+AJKPglzQUxUnone/Wejh3BiDm7hPkH2vErhJiSQFn45emxIQusBoQXfNdz3i6vXWpPkKs=; 7:GUgNGZgjeyEFS/KlTE9BLuiFAzRdfGrhucivR0zbgIjhXBHsuxTOwWhJpOVogxrNUhItEUhprrNaHmQauCI0NAi1RRFPSsRTfVjKrvqHehabCsUz2ClRmF5Z9/5ugvBmfwmmnZBcOU+JVmpX88GOCQ== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 049a25a5-b031-4d25-af13-08d64adf2f0a x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR05MB5495; x-ms-traffictypediagnostic: DB7PR05MB5495: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(45079756050767)(189930954265078); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(3231415)(944501410)(4982022)(52105112)(93006095)(93001095)(6055026)(148016)(149066)(150057)(6041310)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:DB7PR05MB5495; BCL:0; PCL:0; RULEID:; SRVR:DB7PR05MB5495; x-forefront-prvs: 08572BD77F x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(396003)(376002)(366004)(346002)(189003)(199004)(6436002)(25786009)(55016002)(9686003)(8936002)(4326008)(966005)(256004)(14444005)(316002)(71190400001)(2900100001)(6306002)(97736004)(7736002)(2501003)(93886005)(86362001)(14454004)(6246003)(8676002)(68736007)(110136005)(81156014)(81166006)(71200400001)(305945005)(54906003)(53936002)(5660300001)(102836004)(53546011)(66066001)(6506007)(4744004)(76176011)(229853002)(74316002)(99286004)(26005)(33656002)(7696005)(106356001)(6116002)(3846002)(105586002)(446003)(476003)(486006)(11346002)(2906002)(186003)(478600001)(45080400002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB5495; H:DB7PR05MB4426.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: tAtuPKZZt3nocluRVQHIEPTRGaCSohGMzlezKJe87vGcCvHREG5lGEWMSYzY0YYhY08XqsmG5SUhNB+pckXZGRt8tykPkEcoom3NYXN9r7JjLQF/q9oZqbzJcbqb7xFF3ztyFJIoAIt6+Y6BAQkMJDbJYhLML5NSIkbKmtsvHQAegfozDvxvTfAWL9f9Y0dPVaImnurmqTD361FGd4GRTg0Dkq+r93n/zLCSxoZwd0vNz2//J7o0toCepDduY012S0KmOASq1nO/ISxCyDt+D1Bragjx5UIo+Zw9LfRNru8saRdGjaKvBoGW3nYyN9BexLBlNlMB8Glrbu04znHV1vYMGTAkMGh/B7TRT43/Mkc= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 049a25a5-b031-4d25-af13-08d64adf2f0a X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2018 09:46:14.5645 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5495 Subject: Re: [dpdk-dev] [RFC] ethdev: introduce DMA memory mapping for external memory X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Nov 2018 09:46:16 -0000 V2VkbmVzZGF5LCBOb3ZlbWJlciAxNCwgMjAxOCA3OjA2IFBNLCBCdXJha292LCBBbmF0b2x5Og0K PiBTdWJqZWN0OiBSZTogW1JGQ10gZXRoZGV2OiBpbnRyb2R1Y2UgRE1BIG1lbW9yeSBtYXBwaW5n IGZvciBleHRlcm5hbA0KPiBtZW1vcnkNCj4gDQo+IE9uIDE0LU5vdi0xOCAyOjUzIFBNLCBTaGFo YWYgU2h1bGVyIHdyb3RlOg0KPiA+IEhpIEFuYXRvbHksDQo+ID4NCj4gPiBXZWRuZXNkYXksIE5v dmVtYmVyIDE0LCAyMDE4IDE6MTkgUE0sIEJ1cmFrb3YsIEFuYXRvbHk6DQo+ID4+IFN1YmplY3Q6 IFJlOiBbUkZDXSBldGhkZXY6IGludHJvZHVjZSBETUEgbWVtb3J5IG1hcHBpbmcgZm9yIGV4dGVy bmFsDQo+ID4+IG1lbW9yeQ0KPiA+Pg0KPiA+PiBIaSBTaGFoYWYsDQo+ID4+DQo+ID4+IEdyZWF0 IHRvIHNlZSBzdWNoIGVmZm9ydCEgRmV3IGNvbW1lbnRzIGJlbG93Lg0KPiA+Pg0KPiA+PiBOb3Rl OiBoYWxmd2F5IHRocm91Z2ggd3JpdGluZyBteSBjb21tZW50cyBpIHJlYWxpemVkIHRoYXQgaSBh bQ0KPiA+PiBzdGFydGluZyB3aXRoIGFuIGFzc3VtcHRpb24gdGhhdCB0aGlzIEFQSSBpcyBhIHJl cGxhY2VtZW50IGZvcg0KPiA+PiBjdXJyZW50IFZGSU8gRE1BIG1hcHBpbmcgQVBJJ3MuIFNvLCBp ZiBteSBjb21tZW50cyBzZWVtIG91dCBvZiBsZWZ0DQo+ID4+IGZpZWxkLCB0aGlzIGlzIHByb2Jh Ymx5IHdoeSA6KQ0KPiA+Pg0KPiA+PiBPbiAwNC1Ob3YtMTggMTI6NDEgUE0sIFNoYWhhZiBTaHVs ZXIgd3JvdGU6DQo+ID4+PiBSZXF1ZXN0IGZvciBjb21tZW50IG9uIHRoZSBoaWdoIGxldmVsIGNo YW5nZXMgcHJlc2VudCBvbiB0aGlzIHBhdGNoLg0KPiA+Pj4NCj4gPj4+IFRoZSBuZWVkIHRvIHVz ZSBleHRlcm5hbCBtZW1vcnkgKG1lbW9yeSBiZWxvbmcgdG8gYXBwbGljYXRpb24gYW5kDQo+ID4+ PiBub3QgcGFydCBvZiB0aGUgRFBESyBodWdlcGFnZXMpIGlzIGFsbHJlYWR5IHByZXNlbnQuDQo+ ID4+PiBTdGFydGluZyBmcm9tIHN0b3JhZ2UgYXBwcyB3aGljaCBwcmVmZXIgdG8gbWFuYWdlIHRo ZWlyIG93biBtZW1vcnkNCj4gPj4+IGJsb2NrcyBmb3IgZWZmaWNpZW50IHVzZSBvZiB0aGUgc3Rv cmFnZSBkZXZpY2UuIENvbnRpbnVlIHdpdGggR1BVDQo+ID4+PiBiYXNlZCBhcHBsaWNhdGlvbiB3 aGljaCBzdHJpdmVzIHRvIGFjaGlldmUgemVybyBjb3B5IHdoaWxlDQo+ID4+PiBwcm9jZXNzaW5n IHRoZSBwYWNrZXQgcGF5bG9hZCBvbiB0aGUgR1BVIGNvcmUuIEFuZCBmaW5hbGx5IGJ5DQo+ID4+ PiB2U3dpdGNoL3ZSb3V0ZXIgYXBwbGljYXRpb24gd2hvIGp1c3QgcHJlZmVyIHRvIGhhdmUgYSBm dWxsIGNvbnRyb2wNCj4gPj4+IG92ZXIgdGhlIG1lbW9yeSBpbiB1c2UNCj4gPj4gKGUuZy4gVlBQ KS4NCj4gPj4+DQo+ID4+PiBSZWNlbnQgd29ya1sxXSBpbiB0aGUgRFBESyBlbmFibGVkIHRoZSB1 c2Ugb2YgZXh0ZXJuYWwgbWVtb3J5LA0KPiA+Pj4gaG93ZXZlciBpdCBtb3N0bHkgZm9jdXMgb24g VkZJTyBhcyB0aGUgb25seSB3YXkgdG8gbWFwIG1lbW9yeS4NCj4gPj4+IFdoaWxlIFZGSU8gaXMg Y29tbW9uLCB0aGVyZSBhcmUgb3RoZXIgdmVuZG9ycyB3aGljaCB1c2UgZGlmZmVyZW50DQo+ID4+ PiB3YXlzIHRvIG1hcCBtZW1vcnkgKGUuZy4gTWVsbGFub3ggYW5kIE5YUFsyXSkuDQo+ID4+Pg0K PiA+Pj4gVGhlIHdvcmsgaW4gdGhpcyBwYXRjaCBtb3ZlcyB0aGUgRE1BIG1hcHBpbmcgdG8gdmVu ZG9yIGFnbm9zdGljIEFQSXMNCj4gPj4+IGxvY2F0ZWQgdW5kZXIgZXRoZGV2LiBUaGUgY2hvaWNl IGluIGV0aGRldiB3YXMgYmVjYXVzZSBtZW1vcnkgbWFwDQo+ID4+PiBzaG91bGQgYmUgYXNzb2Np YXRlZCB3aXRoIGEgc3BlY2lmaWMgcG9ydChzKS4gT3RoZXJ3aXNlIHRoZSBtZW1vcnkNCj4gPj4+ IGlzIGJlaW5nIG1hcHBlZCBtdWx0aXBsZSB0aW1lcyB0byBkaWZmZXJlbnQgZnJhbWV3b3JrcyBh bmQgZW5kcyB1cA0KPiA+Pj4gd2l0aCBtZW1vcnkgYmVpbmcgd2FzdGVkIG9uIHJlZHVuZGFudCB0 cmFuc2xhdGlvbiB0YWJsZSBpbiB0aGUgaG9zdA0KPiA+Pj4gb3IgaW4gdGhlDQo+ID4+IGRldmlj ZS4NCj4gPj4NCj4gPj4gU28sIGFueXRoaW5nIG90aGVyIHRoYW4gZXRoZGV2IChlLmcuIGNyeXB0 b2Rldikgd2lsbCBub3QgYmUgYWJsZSB0bw0KPiA+PiBtYXAgbWVtb3J5IGZvciBETUE/DQo+ID4N Cj4gPiBUaGF0J3MgaXMgYSBmYWlyIHBvaW50Lg0KPiA+DQo+ID4+DQo+ID4+IEkgaGF2ZSB0aG91 Z2h0IGFib3V0IHRoaXMgZm9yIHNvbWUgbGVuZ3RoIG9mIHRpbWUsIGFuZCBpIHRoaW5rIERNQQ0K PiA+PiBtYXBwaW5nIGJlbG9uZ3MgaW4gRUFMIChtb3JlIHNwZWNpZmljYWxseSwgc29tZXdoZXJl IGF0IHRoZSBidXMNCj4gPj4gbGF5ZXIpLCByYXRoZXIgdGhhbiBhdCBkZXZpY2UgbGV2ZWwuDQo+ ID4NCj4gPiBJIGFtIG5vdCBzdXJlIEkgYWdyZWUgaGVyZS4gRm9yIGV4YW1wbGUgdGFrZSBJbnRl bCBhbmQgTWVsbGFub3ggZGV2aWNlcy4NCj4gQm90aCBhcmUgUENJIGRldmljZXMsIHNvIGhvdyB3 aWxsIHlvdSBkaXN0aW5ndWlzaCB3aGljaCBtYXBwaW5nIEFQSSB0byB1c2U/DQo+ID4gQWxzbyBJ IHN0aWxsIHRoaW5rIHRoZSBtYXBwaW5nIHNob3VsZCBiZSBpbiBkZXZpY2UgZ3JhbnVsYXJpdHkg YW5kIG5vdA0KPiBidXMvc3lzdGVtIGdyYW51bGFyaXR5LCBzaW5jZSBpdCBpcyB2ZXJ5IHR5cGlj YWwgZm9yIGEgbWVtb3J5IHRvIGJlIHVzZWQgZm9yDQo+IERNQSBiZSBhIHNwZWNpZmljIGRldmlj ZS4NCj4gPg0KPiA+IE1heWJlIHdlIGNhbiBzYXkgdGhlIERNQSBtYXBwaW5nIGlzIGEgcnRlX2Rl dmljZSBhdHRyaWJ1dGUuIEl0IGlzIHRoZQ0KPiBwYXJlbnQgY2xhc3MgZm9yIGFsbCB0aGUgRFBE SyBkZXZpY2VzLg0KPiA+IFdlIG5lZWQgdG8gc2VlIHcvIHZwb3J0IHJlcHJlc2VudG9ycyAod2hp Y2ggYWxsIGhhcyB0aGUgc2FtZSBydGVfZGV2aWNlKS4NCj4gT24gdGhhdCBjYXNlIEkgYmVsaWV2 ZSB0aGUgcnRlX2RldmljZS5tYXAgY2FsbCBjYW4gcmVnaXN0ZXIgdGhlIG1lbW9yeSB0byBhbGwN Cj4gb2YgdGhlIHJlcHJlc2VudG9ycyBhcyB3ZWxsIChpZiBuZWVkZWQpLg0KPiA+DQo+ID4gUGxh Y2luZyB0aGlzIGZ1bmN0aW9uYWxpdHkgYXQgZGV2aWNlIGxldmVsIGNvbWVzIHdpdGggbW9yZSB3 b3JrDQo+ID4+IHRvIHN1cHBvcnQgZGlmZmVyZW50IGRldmljZSB0eXBlcyBhbmQgcHV0cyBhIGJ1 cmRlbiBvbiBkZXZpY2UgZHJpdmVyDQo+ID4+IGRldmVsb3BlcnMgdG8gaW1wbGVtZW50IHRoZWly IG93biBtYXBwaW5nIGZ1bmN0aW9ucy4NCj4gPg0KPiA+IFRoZSBtYXBwaW5nIGZ1bmN0aW9uIGNh biBiZSBzaGFyZWQuIEZvciBleGFtcGxlIHdlIGNhbiBzdGlsbCBtYWludGFpbiB0aGUNCj4gdmZp byBtYXBwaW5nIHNjaGVtZSBhcyBwYXJ0IG9mIGVhbCBhbmQgaGF2ZSBhbGwgdGhlIHJlbGF0ZWQg ZHJpdmVyIHRvIGNhbGwgdGhpcw0KPiBmdW5jdGlvbi4NCj4gPiBUaGUgb25seSBvdmVyaGVhZCB3 aWxsIGJlIHRvIG1haW50YWluIHRoZSBmdW5jdGlvbiBwb2ludGVyIGZvciB0aGUgZG1hIGNhbGwu DQo+ID4gV2l0aCB0aGlzIHdvcmssIGluc3RlYWQgb2YgdGhlIGVhbCBsYXllciB0byBndWVzcyB3 aGljaCB0eXBlIG9mIERNQQ0KPiBtYXBwaW5nIHRoZSBkZXZpY2VzIGluIHRoZSAgc3lzdGVtIG5l ZWRzIG9yIGFsdGVybmF0aXZlbHkgZm9yY2UgdGhlbSBhbGwgdG8NCj4gd29yayB3LyBWRklPLCBl YWNoIGRyaXZlciB3aWxsIHNlbGVjdCBpdHMgb3duIGZ1bmN0aW9uLg0KPiA+IFRoZSBkcml2ZXIg aXMgdGhlIG9ubHkgb25lIHdoaWNoIGtub3dzIHdoYXQgdHlwZSBvZiBETUEgbWFwcGluZyBpdHMN Cj4gZGV2aWNlIG5lZWRzLg0KPiA+DQo+ID4+DQo+ID4+IEhvd2V2ZXIsIGkgaGF2ZSBubyBmYW1p bGlhcml0eSB3aXRoIGhvdyBNTFgvTlhQIGRldmljZXMgZG8gdGhlaXIgRE1BDQo+ID4+IG1hcHBp bmcsIHNvIG1heWJlIHRoZSBkZXZpY2UtY2VudHJpYyBhcHByb2FjaCB3b3VsZCBiZSBiZXR0ZXIu IFdlDQo+ID4+IGNvdWxkIHByb3ZpZGUgInN0YW5kYXJkIiBtYXBwaW5nIGZ1bmN0aW9ucyBhdCB0 aGUgYnVzIGxldmVsIChzdWNoIGFzDQo+ID4+IFZGSU8gbWFwcGluZyBmdW5jdGlvbnMgZm9yIFBD SSBidXMpLCBzbyB0aGF0IHRoaXMgY291bGQgd291bGQgbm90DQo+ID4+IGhhdmUgdG8gYmUgcmVp bXBsZW1lbnRlZCBpbiB0aGUgZGV2aWNlcy4NCj4gPg0KPiA+IFllcywgbGlrZSBJIHNhaWQgYWJv dmUsIEkgd2Fzbid0IGludGVuZGluZyB0byByZS1pbXBsZW1lbnQgYWxsIHRoZSBtYXBwaW5nDQo+ IGZ1bmN0aW9uIGFnYWluIG9uIGVhY2ggZHJpdmVyLiBZZXQsIEkgYmVsaWV2ZSBpdCBzaG91bGQg YmUgcGVyIGRldmljZS4NCj4gPg0KPiA+Pg0KPiA+PiBNb3Jlb3ZlciwgaSdtIG5vdCBzdXJlIGhv dyB0aGlzIGlzIGdvaW5nIHRvIHdvcmsgZm9yIFZGSU8uIElmIHRoaXMgaXMNCj4gPj4gdG8gYmUg Y2FsbGVkIGZvciBlYWNoIE5JQyB0aGF0IG5lZWRzIGFjY2VzcyB0byB0aGUgbWVtb3J5LCB0aGVu IHdlJ2xsDQo+ID4+IGVuZCB1cCB3aXRoIGRvdWJsZSBtYXBwaW5ncyBmb3IgYW55IE5JQyB0aGF0 IHVzZXMgVkZJTywgdW5sZXNzIHlvdQ0KPiA+PiB3YW50IGVhY2ggTklDIHRvIGJlIGluIGEgc2Vw YXJhdGUgY29udGFpbmVyLg0KPiA+DQo+ID4gSSBhbSBub3QgbXVjaCBmYW1pbGlhciB3LyBWRklP ICh5b3UgYXJlIHRoZSBleHBlcnTwn5iKKS4NCj4gPiBXaGF0IHdpbGwgaGFwcGVuIGlmIHdlIG1h cCB0aGUgc2FtZSBtZW1vcnkgdHdpY2UgKHVuZGVyIHNhbWUNCj4gY29udGFpbmVyKT8gVGhlIHRy YW5zbGF0aW9uIG9uIHRoZSBJT01NVSB3aWxsIGJlIGRvdWJsZWQ/IFRoZSBtYXAgd2lsbA0KPiBy ZXR1cm4gd2l0aCBlcnJvciB0aGF0IHRoaXMgbWVtb3J5IG1hcHBpbmcgYWxyZWFkeSBleGlzdHM/ DQo+IA0KPiBUaGUgbGF0dGVyLiBZb3UgY2FuJ3QgbWFwIHRoZSBzYW1lIG1lbW9yeSB0d2ljZSBp biB0aGUgc2FtZSBjb250YWluZXIuDQo+IFlvdSBjYW4ndCBldmVuIGtlZXAgTklDcyBpbiBzZXBh cmF0ZSBjb250YWluZXJzIGJlY2F1c2UgdGhlbiBzZWNvbmRhcnkNCj4gcHJvY2Vzc2VzIHdvbid0 IHdvcmsgd2l0aG91dCBzZXJpb3VzIHJld29yay4NCj4gDQo+IFNvLCBhbGwgVkZJTy1tYXBwZWQg dGhpbmdzIHdpbGwgbmVlZCB0byBzaGFyZSB0aGUgbWFwcGluZ3MuDQo+IA0KPiBJdCdzIG5vdCBh biBpbnN1cm1vdW50YWJsZSBwcm9ibGVtLCBidXQgaWYgd2UncmUgZ29pbmcgdG8gc2hhcmUgbWFw cGluZw0KPiBzdGF0dXMgZm9yIFZGSU8gKGkuZS4gdHJhY2sgd2hpY2ggYXJlYSBpcyBhbHJlYWR5 IG1hcHBlZCksIHRoZW4gd2hhdCdzDQo+IHN0b3BwaW5nIHVzIGZyb20gZG9pbmcgdGhlIHNhbWUg Zm9yIG90aGVyIERNQSBtYXBwaW5nIG1lY2hhbmlzbXM/IEkuZS4NCj4gaW5zdGVhZCBvZiBkdXBs aWNhdGluZyB0aGUgbWFwcGluZ3MgaW4gZWFjaCBkcml2ZXIsIHByb3ZpZGUgc29tZSBraW5kIG9m DQo+IG1lY2hhbmlzbSBmb3IgZGV2aWNlcyB0byBzaGFyZSB0aGUgRE1BIG1hcHBpbmcgY2FjaGVz LiBBcG9sb2dpZXMgaWYgaSdtDQo+IHRhbGtpbmcgbm9uc2Vuc2UgLSBpJ20gY29tcGxldGVseSB1 bmZhbWlsaWFyIHdpdGggaG93IERNQSBtYXBwaW5nIHdvcmtzDQo+IGZvciBNTFgvTlhQIGRldmlj ZXMgOikNCg0KVW5mb3J0dW5hdGVseSBpdCBjYW5ub3QgYmUgZG9uZSBhdCBsZWFzdCB3LyBNZWxs YW5veC4gDQpJbiBNZWxsYW5veCB0aGUga2VybmVsIGRyaXZlciBpcyB0aGUgb25lIHdoaWNoIG1h cHMgdGhlIG1lbW9yeS4gVGhlIG1hcHBpbmcgcmV0dXJucyBhIGtleSB3aGljaCBpZGVudGlmeSBh IG1lbW9yeSByZWdpb24gd2hpY2ggd2FzIGp1c3QgcmVnaXN0ZXJlZCB0byB0aGUgZGV2aWNlLg0K VGhlcmUgaXMgYSBjb21wbGV0ZSBzZXBhcmF0aW9uIGJldHdlZW4gdGhlIHBvcnRzLCBtZWFuaW5n IG9uZSBwb3J0IG1hcHBpbmcgY2Fubm90IGJlIHVzZWQgYnkgaW4gdGhlIG90aGVyIHBvcnQsIGV2 ZW4gaWYgdGhlIGtleSBpcyBrbm93bi4gDQoNClRoZSBzZXBhcmF0aW9uIGlzIG5vdCBvbmx5IGlu IHBvcnRzLCBidXQgYWxzbyBpbiBwcm9jZXNzZXMgKHR3byBwcmltYXJ5IG9uZXMsIGZvciBzZWNv bmRhcnkgd2UgaGF2ZSBhIHdheSB0byBzaGFyZSkuIElmIHR3byBwcm9jZXNzIHdvcmsgb24gdGhl IHNhbWUgZGV2aWNlLCB0aGUgbXVzdCByZWdpc3RlciB0aGUgbWVtb3J5IGluZGVwZW5kZW50bHku IA0KDQo+IA0KPiA+DQo+ID4+DQo+ID4+Pg0KPiA+Pj4gRm9yIGV4YW1wbGUsIGNvbnNpZGVyIGEg aG9zdCB3aXRoIE1lbGxhbm94IGFuZCBJbnRlbCBkZXZpY2VzLg0KPiA+Pj4gTWFwcGluZyBhIG1l bW9yeSB3aXRob3V0IHNwZWNpZnlpbmcgdG8gd2hpY2ggcG9ydCB3aWxsIGVuZCB1cCB3aXRoDQo+ ID4+PiBJT01NVSByZWdpc3RyYXRpb24gYW5kIFZlcmJzIChNZWxsYW5veCBETUEgbWFwKSByZWdp c3RyYXRpb24uDQo+ID4+PiBBbm90aGVyIGV4YW1wbGUgY2FuIGJlIHR3byBNZWxsYW5veCBkZXZp Y2VzIG9uIHRoZSBzYW1lIGhvc3QuIFRoZQ0KPiA+PiBtZW1vcnkNCj4gPj4+IHdpbGwgYmUgbWFw cGVkIGZvciBib3RoLCBldmVuIHRob3VnaCBhcHBsaWNhdGlvbiB3aWxsIHVzZSBtZW1wb29sDQo+ ID4+PiBwZXIgZGV2aWNlLg0KPiA+Pj4NCj4gPj4+IFRvIHVzZSB0aGUgc3VnZ2VzdGVkIEFQSXMg dGhlIGFwcGxpY2F0aW9uIHdpbGwgYWxsb2NhdGUgYSBtZW1vcnkNCj4gPj4+IGJsb2NrIGFuZCB3 aWxsIGNhbGwgcnRlX2V0aF9kbWFfbWFwLiBJdCB3aWxsIG1hcCBpdCB0byBldmVyeSBwb3J0DQo+ ID4+PiB0aGF0IG5lZWRzIERNQSBhY2Nlc3MgdG8gdGhpcyBtZW1vcnkuDQo+ID4+DQo+ID4+IFRo aXMgYml0IGlzIHVuY2xlYXIgdG8gbWUuIFdoYXQgZG8geW91IG1lYW4gIm1hcCBpdCB0byBldmVy eSBwb3J0DQo+ID4+IHRoYXQgbmVlZHMgRE1BIGFjY2VzcyB0byB0aGlzIG1lbW9yeSI/IEkgZG9u J3Qgc2VlIGhvdyB0aGlzIEFQSQ0KPiA+PiBzb2x2ZXMgdGhlIGFib3ZlIHByb2JsZW0gb2YgbWFw cGluZyB0aGUgc2FtZSBtZW1vcnkgdG8gYWxsIGRldmljZXMuDQo+ID4+IEhvdyBkb2VzIGEgZGV2 aWNlIGtub3cgd2hpY2ggbWVtb3J5IGl0IHdpbGwgbmVlZD8gRG9lcyB0aGUgdXNlcg0KPiA+PiBz cGVjaWZpY2FsbHkgaGF2ZSB0byBjYWxsIHRoaXMgQVBJIGZvciBlYWNoIGFuZCBldmVyeSBOSUMg dGhleSdyZSB1c2luZz8NCj4gPg0KPiA+IFllcywgdGhlIHVzZXIgd2lsbCBjYWxsIHRoaXMgQVBJ IGZvciBldmVyeSBwb3J0IHdoaWNoIG5lZWRzIHRvIGhhdmUgRE1BDQo+IGFjY2VzcyB0byB0aGlz IG1lbW9yeS4NCj4gPiBSZW1lbWJlciB3ZSBhcmUgc3BlYWtpbmcgaGVyZSBvbiBleHRlcm5hbCBt ZW1vcnkgdGhlIGFwcGxpY2F0aW9uDQo+IGFsbG9jYXRlZCBhbmQgd2FudHMgdG8gdXNlIGZvciBz ZW5kL3JlY2VpdmUuICBUaGUgZGV2aWNlIGRvZXNuJ3QgZ3Vlc3Mgd2hpY2gNCj4gbWVtb3J5IGhl IHdpbGwgbmVlZCwgdGhlIHVzZXIgaXMgdGVsbGluZyBpdCB0byBoaW0gZXhwbGljaXRseS4NCj4g Pg0KPiA+Pg0KPiA+PiBGb3IgRFBESy1tYW5hZ2VkIG1lbW9yeSwgZXZlcnl0aGluZyB3aWxsIHN0 aWxsIGdldCBtYXBwZWQgdG8gZXZlcnkNCj4gPj4gZGV2aWNlIGF1dG9tYXRpY2FsbHksIGNvcnJl Y3Q/DQo+ID4NCj4gPiBZZXMsIGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCB0aGUgY2FzZSB0b2RheS4N Cj4gDQo+IFdoYXQgZG8geW91IG1lYW4gaXQgaXMgbm90IHRoZSBjYXNlPyBJdCBpcyB0aGUgY2Fz ZSB0b2RheS4gV2hlbiBleHRlcm5hbA0KPiBtZW1vcnkgY2h1bmsgaXMgcmVnaXN0ZXJlZCBhdCB0 aGUgaGVhcCwgYSBtZW0gZXZlbnQgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkDQo+IGp1c3QgbGlrZSBm b3IgcmVndWxhciBtZW1vcnksIGFuZCB0aGlzIGNodW5rIGRvZXMgZ2V0IG1hcHBlZCB0byBWRklP IGFzIHdlbGwNCj4gYXMgYW55IG90aGVyIHN1YnNjcmliZWQgZW50aXR5LiBBcyBpIHJlY2FsbCwg TlhQIE5JQ3MgY3VycmVudGx5IGFyZSBzZXQgdXAgdG8NCj4gaWdub3JlIGV4dGVybmFsbHkgYWxs b2NhdGVkIG1lbW9yeSwgYnV0IGZvciB0aGUgZ2VuZXJhbCBWRklPIGNhc2UsDQo+IGV2ZXJ5dGhp bmcgaXMgbWFwcGVkIGF1dG9tYXRpY2FsbHkuDQo+IA0KPiA+DQo+ID4gSWYgc28sIHRoZW4gc3Vj aCBhIG1hbnVhbCBhcHByb2FjaCBmb3INCj4gPj4gZXh0ZXJuYWwgbWVtb3J5IHdpbGwgYmUgYmFk IGZvciBib3RoIHVzYWJpbGl0eSBhbmQgZHJvcC1pbg0KPiA+PiByZXBsYWNlbWVudCBvZiBpbnRl cm5hbC10by1leHRlcm5hbCBtZW1vcnksIGJlY2F1c2UgaXQgaW50cm9kdWNlcw0KPiA+PiBpbmNv bnNpc3RlbmN5IGJldHdlZW4gdXNpbmcgaW50ZXJuYWwgYW5kIGV4dGVybmFsIG1lbW9yeS4gRnJv bSBteQ0KPiA+PiBwb2ludCBvZiB2aWV3LCBlaXRoZXIgd2UgZG8gKmV2ZXJ5dGhpbmcqIG1hbnVh bGx5IChpLmUuIHJlZ2lzdGVyIGFsbA0KPiA+PiBtZW1vcnkgZm9yIERNQQ0KPiA+PiBleHBsaWNp dGx5KSBhbmQgdGhlcmVieSBhdm9pZCB0aGlzIHByb2JsZW0gYnV0IGtlZXAgdGhlIGNvbnNpc3Rl bmN5LA0KPiA+PiBvciB3ZSBkbyAqZXZlcnl0aGluZyogYXV0b21hdGljYWxseSBhbmQgZGVhbCB3 aXRoIGR1cGxpY2F0aW9uIG9mDQo+ID4+IG1hcHBpbmdzIHNvbWVob3cgKHNheSwgYnkgTUxYL05Y UCBkcml2ZXJzIHNoYXJpbmcgdGhlaXIgbWFwcGluZ3MNCj4gPj4gdGhyb3VnaCBidXMgaW50ZXJm YWNlKS4NCj4gPg0KPiA+IEkgdW5kZXJzdGFuZCB5b3VyIHBvaW50LCBob3dldmVyIEkgYW0gbm90 IHN1cmUgZXh0ZXJuYWwgYW5kIGludGVybmFsDQo+IG1lbW9yeSAqbXVzdCogYmUgY29uc2lzdC4N Cj4gPiBUaGUgRFBESy1tYW5hZ2VkIG1lbW9yeSBpcyBwYXJ0IG9mIHRoZSBEUERLIHN1YnN5c3Rl bXMgYW5kIHRoZSBEUERLDQo+IGxpYnMgYXJlIHByZXBhcmluZyBpdCBmb3IgdGhlIG9wdGltYWwg dXNlIG9mIHRoZSB1bmRlcmx5aW5nIGRldmljZXMuIFRoZQ0KPiBleHRlcm5hbCBtZW1vcnkgaXMg ZGlmZmVyZW50LCBpdCBpcyBhIHByb3ByaWV0YXJ5IG1lbW9yeSB0aGUgYXBwbGljYXRpb24NCj4g YWxsb2NhdGVkIGFuZCB0aGUgRFBESyBjYW5ub3QgZG8gYW55dGhpbmcgaW4gYWR2YW5jZSBvbiBp dC4NCj4gDQo+IE15IHZpZXcgZm9yIGRlc2lnbmluZyBleHRlcm5hbCBtZW1vcnkgc3VwcG9ydCB3 YXMgdGhhdCBpdCBzaG91bGQgYmVoYXZlDQo+IGxpa2UgcmVndWxhciBEUERLIG1lbW9yeSBmb3Ig YWxsIGludGVudHMgYW5kIHB1cnBvc2VzLCBhbmQgYmUgYSBkcm9wLWluDQo+IHJlcGxhY2VtZW50 LCBzaG91bGQgeW91IGNob29zZSB0byB1c2UgaXQuIEkuZS4gdGhlIGFwcGxpY2F0aW9uIHNob3Vs ZCBub3QgY2FyZQ0KPiB3aGV0aGVyIGl0IHVzZXMgaW50ZXJuYWwgb3IgZXh0ZXJuYWwgbWVtb3J5 IC0gaXQgYWxsIHNpdHMgaW4gdGhlIHNhbWUgbWFsbG9jDQo+IGhlYXBzLCBpdCBhbGwgdXNlcyB0 aGUgc2FtZSBzb2NrZXQgSUQgbWVjaGFuaXNtcywgZXRjLiAtIGZvciBhbGwgaW50ZW50cyBhbmQN Cj4gcHVycG9zZXMsIHRoZXkncmUgb25lIGFuZCB0aGUgc2FtZS4NCj4gDQo+ID4gRXZlbiB0b2Rh eSB0aGVyZSBpcyBpbmNvbnNpc3RlbmN5LCBiZWNhdXNlIGlmIHVzZXIgd2FudHMgdG8gdXNlIGV4 dGVybmFsDQo+IG1lbW9yeSBpdCBtdXN0IG1hcCBpdCAocnRlX3ZmaW9fZG1hX21hcCkgd2hpbGUg aGUgZG9lc24ndCBuZWVkIHRvIGRvDQo+IHRoYXQgZm9yIHRoZSBEUERLLW1hbmFnZWQgbWVtb3J5 Lg0KPiANCj4gV2VsbCwgbm93IGkgc2VlIHdoZXJlIHlvdXIgY29uZnVzaW9uIHN0ZW1zIGZyb20g OikgWW91IGRpZG4ndCBrbm93IGFib3V0DQo+IHRoaXM6DQo+IA0KPiBodHRwczovL2VtZWEwMS5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkZnaXQuZA0K PiBwZGsub3JnJTJGZHBkayUyRnRyZWUlMkZsaWIlMkZsaWJydGVfZWFsJTJGY29tbW9uJTJGbWFs bG9jX2hlYXAuYw0KPiAlMjNuMTE2OSZhbXA7ZGF0YT0wMiU3QzAxJTdDc2hhaGFmcyU0MG1lbGxh bm94LmNvbSU3Q2ExZWIwNmM1YQ0KPiBkNzk0ZTRlNzI1ZDA4ZDY0YTUzN2YyMyU3Q2E2NTI5NzFj N2QyZTRkOWJhNmE0ZDE0OTI1NmY0NjFiJTdDMCU3DQo+IEMwJTdDNjM2Nzc4MTE5ODIyMzc2MjEx JmFtcDtzZGF0YT1kdU1pczZmVzJDVG15UnFkT0FtbFpsNWNlekNmSg0KPiBhZXVvbzYxUUdJQklH ayUzRCZhbXA7cmVzZXJ2ZWQ9MA0KPiANCj4gVGhpcyB3aWxsIHRyaWdnZXIgYWxsIG1lbSBldmVu dCBjYWxsYmFja3MsIGluY2x1ZGluZyBWRklPIERNQSBtYXBwaW5nDQo+IGNhbGxiYWNrLg0KDQpJ IHNlZSwgc28gSSBhbSBpbmRlZWQgY29uZnVzZWQg8J+Yii4NCk9uIHdoaWNoIGNhc2VzIHRoZSBh cHBsaWNhdGlvbiBzaG91bGQgY2FsbCB0aGUgZXhpc3RpbmcgcnRlX3ZmaW9fZG1hX21hcD8gSWYg dGhlIG1lbW9yeSBpcyBhbHJlYWR5IG1hcHBlZCBhbmQgdGhlIG9ubHkgd2F5IHRvIHdvcmsgd2l0 aCBpdCBpcyB0aHJvdWdoIHRoZSBydGVfbWFsbG9jIG1lY2hhbmlzbS4NCg0KPiANCj4gPg0KPiA+ IEkgZ3Vlc3Mgd2UgY2FuIHdlIGNhbiBhZGQgYSBmbGFnIG9uIHRoZSBkZXZpY2UgbWFwcGluZyB3 aGljaCB3aWxsIHNheQ0KPiBNQVBfVE9fQUxMX0RFVklDRVMsIHRvIGVhc2UgdGhlIGFwcGxpY2F0 aW9uIGxpZmUgaW4gdGhlIHByZXNlbmNlIG9mDQo+IG11bHRpcGxlIGRldmljZSBpbiB0aGUgaG9z dC4NCj4gPg0KPiANCj4gDQo+IC0tDQo+IFRoYW5rcywNCj4gQW5hdG9seQ0K