From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130078.outbound.protection.outlook.com [40.107.13.78]) by dpdk.org (Postfix) with ESMTP id 782ED1B12D for ; Wed, 14 Nov 2018 15:53:32 +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=ua1K/mWS3A4iRYDVveLJlqwwwlfaCWR63NImXJS2rTo=; b=f3NL2H+lYzTHHiI5mGvQUzaqioKfCc5kTtueLhEv64N/dQmBzFs2DQ4b0tfyXfcLEM4yvYF3xgasHVP4G0vrPg4CAc0fzmgJ9n04an4cWI9OoPIx+uYSUJiX+DTa8xVqnm0KfqhmEtux+TdK5dF2M5rwUkrNcwH09HIIAFJrJYs= Received: from DB7PR05MB4426.eurprd05.prod.outlook.com (52.134.109.15) by DB7PR05MB5274.eurprd05.prod.outlook.com (20.178.42.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.30; Wed, 14 Nov 2018 14:53:29 +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.044; Wed, 14 Nov 2018 14:53:29 +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: AQHUfAvf4jIdUz85H0GyxZG2DmtVfqVPTGBQ Date: Wed, 14 Nov 2018 14:53:29 +0000 Message-ID: References: In-Reply-To: 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: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR05MB5274; 6:JaHw+36G5CgeA5OWQM9gVkTcgXyHCGExUzpAYIFtrbPZUeJkMPKPO4phcprIf7g5T0xtgFeT8q+g+5vnsFVQ5l9pDTHcg1K8d7BgMK7GFPhFPhq9Xg4iDV/nulfPLhGVBFBsKEOYP9KvWTeQJMl8JN2RSJlyH9k0oi3b29R6Ms8jijncKZhrX7SE7ueULBEvxccJB/y61I/Q4Iq8Pek8EtcnGTZ3qDRUF8uE2IdpxRxY8wktjfuVJ2iRX7uAXgItCSbonuIEBpOjKlrwRcIc08SXoUbQ9jO9p5kUtOJxy6yBY7Y2M4apd2TrCUHrOw8CAn/Qp7B4Es6CuPkb1vGApo0bHUr/Ytst0UkPywDl+Qlnyl0nzwiKpVBitSv50MiMyPYH3N7V59k0Rlw7EnngwFPk8FumNZTQT/9zs4NDYh14n/5Ql3WIoMzVMoYpvLou4BCLKeXzSysLmMejhP9XKA==; 5:gI2uqqhTAKi0Ox1DEOzw5JTdxoy1YqFBzwS0tmDbXBgs9FGhiveZZB8nrrMVGhKAYxuN2AKVfUJU5EFHHw02GQDekkAxxl+3+hRGQnPbF7avymeaWylz7uTtTfzLYFovbmOEexxR9mS4EaRBiCfZAEdLa+54eMJomabXJ4kFJYs=; 7:ynetadQ9XylsLnv18JaE5jcFUteVllmn8wscHZ9RiIT9tR7xvGuobpAXJK1EXdUD5ClpuZ4F2UUz6QMc6KoMoVqq/hAx6Vj+akwqbWgcESBTuvfBlB5K230Wq9HBzV+hDrwou1/RdokCHgsp5oSTrQ== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 8f661a80-a987-4774-fe7f-08d64a40f0ae 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:DB7PR05MB5274; x-ms-traffictypediagnostic: DB7PR05MB5274: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(228905959029699)(104084551191319)(185117386973197)(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)(3231410)(944501410)(4982022)(52105112)(93006095)(93001095)(6055026)(148016)(149066)(150057)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:DB7PR05MB5274; BCL:0; PCL:0; RULEID:; SRVR:DB7PR05MB5274; x-forefront-prvs: 085634EFF4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(366004)(39860400002)(376002)(396003)(346002)(199004)(189003)(33656002)(4326008)(305945005)(7736002)(478600001)(74316002)(316002)(54906003)(8936002)(110136005)(11346002)(8676002)(71200400001)(81156014)(71190400001)(446003)(486006)(476003)(106356001)(3846002)(6436002)(5660300001)(6246003)(966005)(6306002)(55016002)(9686003)(45080400002)(53936002)(6116002)(25786009)(105586002)(229853002)(14454004)(2501003)(7696005)(97736004)(86362001)(99286004)(76176011)(186003)(66066001)(5024004)(256004)(2900100001)(2906002)(14444005)(6506007)(53546011)(81166006)(102836004)(68736007)(26005); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR05MB5274; H:DB7PR05MB4426.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: vhQz4c9dFfnven594TRxP3h4m1TpDsyMCr20EXI0XA5zE8UO3C2tFKwnS4WJlScGOR01yMKmqDW+zSAShXv9HBiWj4M3t/2xaRocw7zsQoO8df58hhZNBIS2kpJ5x2abu7qs05Zt71c3wi2QlAjUQj/kHUmEY+9JUNv5mvR/h+LZtzXOMF7BF0guZGAuetg+wKPTfdUU81XZMkf2NPeIAf/utz+LPwnMxMUQQTAUA90heexIoCSNyacp309TmL69jMLA7IwVf7Oqzul61C9LRsqegA8Wb3WiK/8nEtqYN1p+Au7dzWNpyOLCZQ1dFLRwSepr++F9Mzh2mcaqag5CESaAQTPc3IyvGszYaqe8Dtc= 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: 8f661a80-a987-4774-fe7f-08d64a40f0ae X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2018 14:53:29.4460 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR05MB5274 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: Wed, 14 Nov 2018 14:53:32 -0000 SGkgQW5hdG9seSwgDQoNCldlZG5lc2RheSwgTm92ZW1iZXIgMTQsIDIwMTggMToxOSBQTSwgQnVy YWtvdiwgQW5hdG9seToNCj4gU3ViamVjdDogUmU6IFtSRkNdIGV0aGRldjogaW50cm9kdWNlIERN QSBtZW1vcnkgbWFwcGluZyBmb3IgZXh0ZXJuYWwNCj4gbWVtb3J5DQo+IA0KPiBIaSBTaGFoYWYs DQo+IA0KPiBHcmVhdCB0byBzZWUgc3VjaCBlZmZvcnQhIEZldyBjb21tZW50cyBiZWxvdy4NCj4g DQo+IE5vdGU6IGhhbGZ3YXkgdGhyb3VnaCB3cml0aW5nIG15IGNvbW1lbnRzIGkgcmVhbGl6ZWQg dGhhdCBpIGFtIHN0YXJ0aW5nIHdpdGgNCj4gYW4gYXNzdW1wdGlvbiB0aGF0IHRoaXMgQVBJIGlz IGEgcmVwbGFjZW1lbnQgZm9yIGN1cnJlbnQgVkZJTyBETUEgbWFwcGluZw0KPiBBUEkncy4gU28s IGlmIG15IGNvbW1lbnRzIHNlZW0gb3V0IG9mIGxlZnQgZmllbGQsIHRoaXMgaXMgcHJvYmFibHkg d2h5IDopDQo+IA0KPiBPbiAwNC1Ob3YtMTggMTI6NDEgUE0sIFNoYWhhZiBTaHVsZXIgd3JvdGU6 DQo+ID4gUmVxdWVzdCBmb3IgY29tbWVudCBvbiB0aGUgaGlnaCBsZXZlbCBjaGFuZ2VzIHByZXNl bnQgb24gdGhpcyBwYXRjaC4NCj4gPg0KPiA+IFRoZSBuZWVkIHRvIHVzZSBleHRlcm5hbCBtZW1v cnkgKG1lbW9yeSBiZWxvbmcgdG8gYXBwbGljYXRpb24gYW5kIG5vdA0KPiA+IHBhcnQgb2YgdGhl IERQREsgaHVnZXBhZ2VzKSBpcyBhbGxyZWFkeSBwcmVzZW50Lg0KPiA+IFN0YXJ0aW5nIGZyb20g c3RvcmFnZSBhcHBzIHdoaWNoIHByZWZlciB0byBtYW5hZ2UgdGhlaXIgb3duIG1lbW9yeQ0KPiA+ IGJsb2NrcyBmb3IgZWZmaWNpZW50IHVzZSBvZiB0aGUgc3RvcmFnZSBkZXZpY2UuIENvbnRpbnVl IHdpdGggR1BVDQo+ID4gYmFzZWQgYXBwbGljYXRpb24gd2hpY2ggc3RyaXZlcyB0byBhY2hpZXZl IHplcm8gY29weSB3aGlsZSBwcm9jZXNzaW5nDQo+ID4gdGhlIHBhY2tldCBwYXlsb2FkIG9uIHRo ZSBHUFUgY29yZS4gQW5kIGZpbmFsbHkgYnkgdlN3aXRjaC92Um91dGVyDQo+ID4gYXBwbGljYXRp b24gd2hvIGp1c3QgcHJlZmVyIHRvIGhhdmUgYSBmdWxsIGNvbnRyb2wgb3ZlciB0aGUgbWVtb3J5 IGluIHVzZQ0KPiAoZS5nLiBWUFApLg0KPiA+DQo+ID4gUmVjZW50IHdvcmtbMV0gaW4gdGhlIERQ REsgZW5hYmxlZCB0aGUgdXNlIG9mIGV4dGVybmFsIG1lbW9yeSwgaG93ZXZlcg0KPiA+IGl0IG1v c3RseSBmb2N1cyBvbiBWRklPIGFzIHRoZSBvbmx5IHdheSB0byBtYXAgbWVtb3J5Lg0KPiA+IFdo aWxlIFZGSU8gaXMgY29tbW9uLCB0aGVyZSBhcmUgb3RoZXIgdmVuZG9ycyB3aGljaCB1c2UgZGlm ZmVyZW50IHdheXMNCj4gPiB0byBtYXAgbWVtb3J5IChlLmcuIE1lbGxhbm94IGFuZCBOWFBbMl0p Lg0KPiA+DQo+ID4gVGhlIHdvcmsgaW4gdGhpcyBwYXRjaCBtb3ZlcyB0aGUgRE1BIG1hcHBpbmcg dG8gdmVuZG9yIGFnbm9zdGljIEFQSXMNCj4gPiBsb2NhdGVkIHVuZGVyIGV0aGRldi4gVGhlIGNo b2ljZSBpbiBldGhkZXYgd2FzIGJlY2F1c2UgbWVtb3J5IG1hcA0KPiA+IHNob3VsZCBiZSBhc3Nv Y2lhdGVkIHdpdGggYSBzcGVjaWZpYyBwb3J0KHMpLiBPdGhlcndpc2UgdGhlIG1lbW9yeSBpcw0K PiA+IGJlaW5nIG1hcHBlZCBtdWx0aXBsZSB0aW1lcyB0byBkaWZmZXJlbnQgZnJhbWV3b3JrcyBh bmQgZW5kcyB1cCB3aXRoDQo+ID4gbWVtb3J5IGJlaW5nIHdhc3RlZCBvbiByZWR1bmRhbnQgdHJh bnNsYXRpb24gdGFibGUgaW4gdGhlIGhvc3Qgb3IgaW4gdGhlDQo+IGRldmljZS4NCj4gDQo+IFNv LCBhbnl0aGluZyBvdGhlciB0aGFuIGV0aGRldiAoZS5nLiBjcnlwdG9kZXYpIHdpbGwgbm90IGJl IGFibGUgdG8gbWFwDQo+IG1lbW9yeSBmb3IgRE1BPw0KDQpUaGF0J3MgaXMgYSBmYWlyIHBvaW50 LiANCg0KPiANCj4gSSBoYXZlIHRob3VnaHQgYWJvdXQgdGhpcyBmb3Igc29tZSBsZW5ndGggb2Yg dGltZSwgYW5kIGkgdGhpbmsgRE1BIG1hcHBpbmcNCj4gYmVsb25ncyBpbiBFQUwgKG1vcmUgc3Bl Y2lmaWNhbGx5LCBzb21ld2hlcmUgYXQgdGhlIGJ1cyBsYXllciksIHJhdGhlciB0aGFuIGF0DQo+ IGRldmljZSBsZXZlbC4NCg0KSSBhbSBub3Qgc3VyZSBJIGFncmVlIGhlcmUuIEZvciBleGFtcGxl IHRha2UgSW50ZWwgYW5kIE1lbGxhbm94IGRldmljZXMuIEJvdGggYXJlIFBDSSBkZXZpY2VzLCBz byBob3cgd2lsbCB5b3UgZGlzdGluZ3Vpc2ggd2hpY2ggbWFwcGluZyBBUEkgdG8gdXNlPyANCkFs c28gSSBzdGlsbCB0aGluayB0aGUgbWFwcGluZyBzaG91bGQgYmUgaW4gZGV2aWNlIGdyYW51bGFy aXR5IGFuZCBub3QgYnVzL3N5c3RlbSBncmFudWxhcml0eSwgc2luY2UgaXQgaXMgdmVyeSB0eXBp Y2FsIGZvciBhIG1lbW9yeSB0byBiZSB1c2VkIGZvciBETUEgYmUgYSBzcGVjaWZpYyBkZXZpY2Uu IA0KDQpNYXliZSB3ZSBjYW4gc2F5IHRoZSBETUEgbWFwcGluZyBpcyBhIHJ0ZV9kZXZpY2UgYXR0 cmlidXRlLiBJdCBpcyB0aGUgcGFyZW50IGNsYXNzIGZvciBhbGwgdGhlIERQREsgZGV2aWNlcy4g DQpXZSBuZWVkIHRvIHNlZSB3LyB2cG9ydCByZXByZXNlbnRvcnMgKHdoaWNoIGFsbCBoYXMgdGhl IHNhbWUgcnRlX2RldmljZSkuIE9uIHRoYXQgY2FzZSBJIGJlbGlldmUgdGhlIHJ0ZV9kZXZpY2Uu bWFwIGNhbGwgY2FuIHJlZ2lzdGVyIHRoZSBtZW1vcnkgdG8gYWxsIG9mIHRoZSByZXByZXNlbnRv cnMgYXMgd2VsbCAoaWYgbmVlZGVkKS4gDQoNClBsYWNpbmcgdGhpcyBmdW5jdGlvbmFsaXR5IGF0 IGRldmljZSBsZXZlbCBjb21lcyB3aXRoIG1vcmUgd29yaw0KPiB0byBzdXBwb3J0IGRpZmZlcmVu dCBkZXZpY2UgdHlwZXMgYW5kIHB1dHMgYSBidXJkZW4gb24gZGV2aWNlIGRyaXZlcg0KPiBkZXZl bG9wZXJzIHRvIGltcGxlbWVudCB0aGVpciBvd24gbWFwcGluZyBmdW5jdGlvbnMuDQoNClRoZSBt YXBwaW5nIGZ1bmN0aW9uIGNhbiBiZSBzaGFyZWQuIEZvciBleGFtcGxlIHdlIGNhbiBzdGlsbCBt YWludGFpbiB0aGUgdmZpbyBtYXBwaW5nIHNjaGVtZSBhcyBwYXJ0IG9mIGVhbCBhbmQgaGF2ZSBh bGwgdGhlIHJlbGF0ZWQgZHJpdmVyIHRvIGNhbGwgdGhpcyBmdW5jdGlvbi4gDQpUaGUgb25seSBv dmVyaGVhZCB3aWxsIGJlIHRvIG1haW50YWluIHRoZSBmdW5jdGlvbiBwb2ludGVyIGZvciB0aGUg ZG1hIGNhbGwuIA0KV2l0aCB0aGlzIHdvcmssIGluc3RlYWQgb2YgdGhlIGVhbCBsYXllciB0byBn dWVzcyB3aGljaCB0eXBlIG9mIERNQSBtYXBwaW5nIHRoZSBkZXZpY2VzIGluIHRoZSAgc3lzdGVt IG5lZWRzIG9yIGFsdGVybmF0aXZlbHkgZm9yY2UgdGhlbSBhbGwgdG8gd29yayB3LyBWRklPLCBl YWNoIGRyaXZlciB3aWxsIHNlbGVjdCBpdHMgb3duIGZ1bmN0aW9uLiANClRoZSBkcml2ZXIgaXMg dGhlIG9ubHkgb25lIHdoaWNoIGtub3dzIHdoYXQgdHlwZSBvZiBETUEgbWFwcGluZyBpdHMgZGV2 aWNlIG5lZWRzLiANCg0KPiANCj4gSG93ZXZlciwgaSBoYXZlIG5vIGZhbWlsaWFyaXR5IHdpdGgg aG93IE1MWC9OWFAgZGV2aWNlcyBkbyB0aGVpciBETUENCj4gbWFwcGluZywgc28gbWF5YmUgdGhl IGRldmljZS1jZW50cmljIGFwcHJvYWNoIHdvdWxkIGJlIGJldHRlci4gV2UgY291bGQNCj4gcHJv dmlkZSAic3RhbmRhcmQiIG1hcHBpbmcgZnVuY3Rpb25zIGF0IHRoZSBidXMgbGV2ZWwgKHN1Y2gg YXMgVkZJTyBtYXBwaW5nDQo+IGZ1bmN0aW9ucyBmb3IgUENJIGJ1cyksIHNvIHRoYXQgdGhpcyBj b3VsZCB3b3VsZCBub3QgaGF2ZSB0byBiZQ0KPiByZWltcGxlbWVudGVkIGluIHRoZSBkZXZpY2Vz Lg0KDQpZZXMsIGxpa2UgSSBzYWlkIGFib3ZlLCBJIHdhc24ndCBpbnRlbmRpbmcgdG8gcmUtaW1w bGVtZW50IGFsbCB0aGUgbWFwcGluZyBmdW5jdGlvbiBhZ2FpbiBvbiBlYWNoIGRyaXZlci4gWWV0 LCBJIGJlbGlldmUgaXQgc2hvdWxkIGJlIHBlciBkZXZpY2UuIA0KDQo+IA0KPiBNb3Jlb3Zlciwg aSdtIG5vdCBzdXJlIGhvdyB0aGlzIGlzIGdvaW5nIHRvIHdvcmsgZm9yIFZGSU8uIElmIHRoaXMg aXMgdG8gYmUNCj4gY2FsbGVkIGZvciBlYWNoIE5JQyB0aGF0IG5lZWRzIGFjY2VzcyB0byB0aGUg bWVtb3J5LCB0aGVuIHdlJ2xsIGVuZCB1cCB3aXRoDQo+IGRvdWJsZSBtYXBwaW5ncyBmb3IgYW55 IE5JQyB0aGF0IHVzZXMgVkZJTywgdW5sZXNzIHlvdSB3YW50IGVhY2ggTklDIHRvIGJlDQo+IGlu IGEgc2VwYXJhdGUgY29udGFpbmVyLg0KDQpJIGFtIG5vdCBtdWNoIGZhbWlsaWFyIHcvIFZGSU8g KHlvdSBhcmUgdGhlIGV4cGVydPCfmIopLiANCldoYXQgd2lsbCBoYXBwZW4gaWYgd2UgbWFwIHRo ZSBzYW1lIG1lbW9yeSB0d2ljZSAodW5kZXIgc2FtZSBjb250YWluZXIpPyBUaGUgdHJhbnNsYXRp b24gb24gdGhlIElPTU1VIHdpbGwgYmUgZG91YmxlZD8gVGhlIG1hcCB3aWxsIHJldHVybiB3aXRo IGVycm9yIHRoYXQgdGhpcyBtZW1vcnkgbWFwcGluZyBhbHJlYWR5IGV4aXN0cz8gDQoNCj4gDQo+ ID4NCj4gPiBGb3IgZXhhbXBsZSwgY29uc2lkZXIgYSBob3N0IHdpdGggTWVsbGFub3ggYW5kIElu dGVsIGRldmljZXMuIE1hcHBpbmcgYQ0KPiA+IG1lbW9yeSB3aXRob3V0IHNwZWNpZnlpbmcgdG8g d2hpY2ggcG9ydCB3aWxsIGVuZCB1cCB3aXRoIElPTU1VDQo+ID4gcmVnaXN0cmF0aW9uIGFuZCBW ZXJicyAoTWVsbGFub3ggRE1BIG1hcCkgcmVnaXN0cmF0aW9uLg0KPiA+IEFub3RoZXIgZXhhbXBs ZSBjYW4gYmUgdHdvIE1lbGxhbm94IGRldmljZXMgb24gdGhlIHNhbWUgaG9zdC4gVGhlDQo+IG1l bW9yeQ0KPiA+IHdpbGwgYmUgbWFwcGVkIGZvciBib3RoLCBldmVuIHRob3VnaCBhcHBsaWNhdGlv biB3aWxsIHVzZSBtZW1wb29sIHBlcg0KPiA+IGRldmljZS4NCj4gPg0KPiA+IFRvIHVzZSB0aGUg c3VnZ2VzdGVkIEFQSXMgdGhlIGFwcGxpY2F0aW9uIHdpbGwgYWxsb2NhdGUgYSBtZW1vcnkgYmxv Y2sNCj4gPiBhbmQgd2lsbCBjYWxsIHJ0ZV9ldGhfZG1hX21hcC4gSXQgd2lsbCBtYXAgaXQgdG8g ZXZlcnkgcG9ydCB0aGF0IG5lZWRzDQo+ID4gRE1BIGFjY2VzcyB0byB0aGlzIG1lbW9yeS4NCj4g DQo+IFRoaXMgYml0IGlzIHVuY2xlYXIgdG8gbWUuIFdoYXQgZG8geW91IG1lYW4gIm1hcCBpdCB0 byBldmVyeSBwb3J0IHRoYXQNCj4gbmVlZHMgRE1BIGFjY2VzcyB0byB0aGlzIG1lbW9yeSI/IEkg ZG9uJ3Qgc2VlIGhvdyB0aGlzIEFQSSBzb2x2ZXMgdGhlDQo+IGFib3ZlIHByb2JsZW0gb2YgbWFw cGluZyB0aGUgc2FtZSBtZW1vcnkgdG8gYWxsIGRldmljZXMuIEhvdyBkb2VzIGENCj4gZGV2aWNl IGtub3cgd2hpY2ggbWVtb3J5IGl0IHdpbGwgbmVlZD8gRG9lcyB0aGUgdXNlciBzcGVjaWZpY2Fs bHkgaGF2ZQ0KPiB0byBjYWxsIHRoaXMgQVBJIGZvciBlYWNoIGFuZCBldmVyeSBOSUMgdGhleSdy ZSB1c2luZz8NCg0KWWVzLCB0aGUgdXNlciB3aWxsIGNhbGwgdGhpcyBBUEkgZm9yIGV2ZXJ5IHBv cnQgd2hpY2ggbmVlZHMgdG8gaGF2ZSBETUEgYWNjZXNzIHRvIHRoaXMgbWVtb3J5Lg0KUmVtZW1i ZXIgd2UgYXJlIHNwZWFraW5nIGhlcmUgb24gZXh0ZXJuYWwgbWVtb3J5IHRoZSBhcHBsaWNhdGlv biBhbGxvY2F0ZWQgYW5kIHdhbnRzIHRvIHVzZSBmb3Igc2VuZC9yZWNlaXZlLiAgVGhlIGRldmlj ZSBkb2Vzbid0IGd1ZXNzIHdoaWNoIG1lbW9yeSBoZSB3aWxsIG5lZWQsIHRoZSB1c2VyIGlzIHRl bGxpbmcgaXQgdG8gaGltIGV4cGxpY2l0bHkuIA0KDQo+IA0KPiBGb3IgRFBESy1tYW5hZ2VkIG1l bW9yeSwgZXZlcnl0aGluZyB3aWxsIHN0aWxsIGdldCBtYXBwZWQgdG8gZXZlcnkNCj4gZGV2aWNl IGF1dG9tYXRpY2FsbHksIGNvcnJlY3Q/IA0KDQpZZXMsIGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCB0 aGUgY2FzZSB0b2RheS4gDQoNCklmIHNvLCB0aGVuIHN1Y2ggYSBtYW51YWwgYXBwcm9hY2ggZm9y DQo+IGV4dGVybmFsIG1lbW9yeSB3aWxsIGJlIGJhZCBmb3IgYm90aCB1c2FiaWxpdHkgYW5kIGRy b3AtaW4gcmVwbGFjZW1lbnQNCj4gb2YgaW50ZXJuYWwtdG8tZXh0ZXJuYWwgbWVtb3J5LCBiZWNh dXNlIGl0IGludHJvZHVjZXMgaW5jb25zaXN0ZW5jeQ0KPiBiZXR3ZWVuIHVzaW5nIGludGVybmFs IGFuZCBleHRlcm5hbCBtZW1vcnkuIEZyb20gbXkgcG9pbnQgb2YgdmlldywNCj4gZWl0aGVyIHdl IGRvICpldmVyeXRoaW5nKiBtYW51YWxseSAoaS5lLiByZWdpc3RlciBhbGwgbWVtb3J5IGZvciBE TUENCj4gZXhwbGljaXRseSkgYW5kIHRoZXJlYnkgYXZvaWQgdGhpcyBwcm9ibGVtIGJ1dCBrZWVw IHRoZSBjb25zaXN0ZW5jeSwgb3INCj4gd2UgZG8gKmV2ZXJ5dGhpbmcqIGF1dG9tYXRpY2FsbHkg YW5kIGRlYWwgd2l0aCBkdXBsaWNhdGlvbiBvZiBtYXBwaW5ncw0KPiBzb21laG93IChzYXksIGJ5 IE1MWC9OWFAgZHJpdmVycyBzaGFyaW5nIHRoZWlyIG1hcHBpbmdzIHRocm91Z2ggYnVzDQo+IGlu dGVyZmFjZSkuDQoNCkkgdW5kZXJzdGFuZCB5b3VyIHBvaW50LCBob3dldmVyIEkgYW0gbm90IHN1 cmUgZXh0ZXJuYWwgYW5kIGludGVybmFsIG1lbW9yeSAqbXVzdCogYmUgY29uc2lzdC4NClRoZSBE UERLLW1hbmFnZWQgbWVtb3J5IGlzIHBhcnQgb2YgdGhlIERQREsgc3Vic3lzdGVtcyBhbmQgdGhl IERQREsgbGlicyBhcmUgcHJlcGFyaW5nIGl0IGZvciB0aGUgb3B0aW1hbCB1c2Ugb2YgdGhlIHVu ZGVybHlpbmcgZGV2aWNlcy4gVGhlIGV4dGVybmFsIG1lbW9yeSBpcyBkaWZmZXJlbnQsIGl0IGlz IGEgcHJvcHJpZXRhcnkgbWVtb3J5IHRoZSBhcHBsaWNhdGlvbiBhbGxvY2F0ZWQgYW5kIHRoZSBE UERLIGNhbm5vdCBkbyBhbnl0aGluZyBpbiBhZHZhbmNlIG9uIGl0LiAgDQpFdmVuIHRvZGF5IHRo ZXJlIGlzIGluY29uc2lzdGVuY3ksIGJlY2F1c2UgaWYgdXNlciB3YW50cyB0byB1c2UgZXh0ZXJu YWwgbWVtb3J5IGl0IG11c3QgbWFwIGl0IChydGVfdmZpb19kbWFfbWFwKSB3aGlsZSBoZSBkb2Vz bid0IG5lZWQgdG8gZG8gdGhhdCBmb3IgdGhlIERQREstbWFuYWdlZCBtZW1vcnkuIA0KDQpJIGd1 ZXNzIHdlIGNhbiB3ZSBjYW4gYWRkIGEgZmxhZyBvbiB0aGUgZGV2aWNlIG1hcHBpbmcgd2hpY2gg d2lsbCBzYXkgTUFQX1RPX0FMTF9ERVZJQ0VTLCB0byBlYXNlIHRoZSBhcHBsaWNhdGlvbiBsaWZl IGluIHRoZSBwcmVzZW5jZSBvZiBtdWx0aXBsZSBkZXZpY2UgaW4gdGhlIGhvc3QuIA0KDQo+IA0K PiA+IExhdGVyIG9uIHRoZSBhcHBsaWNhdGlvbiBjb3VsZCB1c2UgdGhpcyBtZW1vcnkgdG8gcG9w dWxhdGUgYSBtZW1wb29sIG9yDQo+ID4gdG8gYXR0YWNoIG1idWYgd2l0aCBleHRlcm5hbCBidWZm ZXIuDQo+ID4gV2hlbiB0aGUgbWVtb3J5IHNob3VsZCBubyBsb25nZXIgYmUgdXNlZCBieSB0aGUg ZGV2aWNlIHRoZSBhcHBsaWNhdGlvbg0KPiA+IHdpbGwgY2FsbCBydGVfZXRoX2RtYV91bm1hcCBm cm9tIGV2ZXJ5IHBvcnQgaXQgZGlkIHJlZ2lzdHJhdGlvbiB0by4NCj4gPg0KPiA+IFRoZSBEcml2 ZXJzIHdpbGwgaW1wbGVtZW50IHRoZSBETUEgbWFwL3VubWFwLCBhbmQgaXQgaXMgdmVyeSBsaWtl bHkgdGhleQ0KPiA+IHdpbGwgdXNlIHRoZSBoZWxwIG9mIHRoZSBleGlzdGluZyBWRklPIG1hcHBp bmcuDQo+ID4NCj4gPiBTdXBwb3J0IGZvciBob3RwbHVnL3VucGx1ZyBvZiBkZXZpY2UgaXMgb3V0 IG9mIHRoZSBzY29wZSBmb3IgdGhpcyBwYXRjaCwNCj4gPiBob3dldmVyIGNhbiBiZSBpbXBsZW1l bnRlZCBpbiB0aGUgc2FtZSB3YXkgaXQgaXMgZG9uZSBvbiBWRklPLg0KPiA+DQo+ID4gQ2M6IHBh d2VseC53b2Rrb3dza2lAaW50ZWwuY29tDQo+ID4gQ2M6IGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5j b20NCj4gPiBDYzogZ293cmlzaGFua2FyLm1AbGludXgudm5ldC5pYm0uY29tDQo+ID4gQ2M6IGZl cnJ1aC55aWdpdEBpbnRlbC5jb20NCj4gPiBDYzogdGhvbWFzQG1vbmphbG9uLm5ldA0KPiA+IENj OiBhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tDQo+ID4gQ2M6IHNocmV5YW5zaC5qYWluQG54cC5j b20NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNAbWVsbGFu b3guY29tPg0KPiA+DQo+ID4gWzFdDQo+ID4gY29tbWl0IDczYTYzOTA4NTkzOCAoInZmaW86IGFs bG93IHRvIG1hcCBvdGhlciBtZW1vcnkgcmVnaW9ucyIpDQo+ID4gWzJdDQo+ID4NCj4gaHR0cHM6 Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJG JTJGbWFpbA0KPiBzLmRwZGsub3JnJTJGYXJjaGl2ZXMlMkZkZXYlMkYyMDE4LQ0KPiBTZXB0ZW1i ZXIlMkYxMTE5NzguaHRtbCZhbXA7ZGF0YT0wMiU3QzAxJTdDc2hhaGFmcyU0MG1lbGxhbm94LmNv DQo+IG0lN0M0YWQ3NzIwM2Y2MDM0YjE3M2ViOTA4ZDY0YTIzMDEyMSU3Q2E2NTI5NzFjN2QyZTRk OWJhNmE0ZDE0OTINCj4gNTZmNDYxYiU3QzAlN0MwJTdDNjM2Nzc3OTExNTM3OTA4NDY0JmFtcDtz ZGF0YT1nVUdwaURVUU9rSG41Tg0KPiAlMkJ0Z2pTRXFpWGN0a1F4QUhXQlNHeXlIaEc4NFVZJTNE JmFtcDtyZXNlcnZlZD0wDQo+ID4gLS0tDQo+IC0tDQo+IFRoYW5rcywNCj4gQW5hdG9seQ0K