From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 48746A0032; Wed, 14 Sep 2022 03:24:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DAF0B4021D; Wed, 14 Sep 2022 03:24:03 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2119.outbound.protection.outlook.com [40.107.93.119]) by mails.dpdk.org (Postfix) with ESMTP id 9FA8D40151 for ; Wed, 14 Sep 2022 03:24:01 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eWggje9Z06/8YXh3rnlqi6QR2uPhXXGu/F8CN+Xng+s5Fztb58tS0a2OnLyosdpqJD1TLkKga3/KBI0VgMbGmkuLlCtzEHLsbx2nOJlxFQkAUIBfWm7r4GXFgB5CkWJDO6Zql8Ji2vwZq9P5ei2ZRlMGBorgw2Eca4wB3+WburkS6d6AYOvl2186+1D7Zq8unqSv+fzKXuojSBhxkOwfqUFXwU6AuSnhndgOtf50dmd05eWmZrIh3JBbk/Jix/mO25t5WLmUgEvkH/8rL008PhYtvPTpf9/dPng8fxf0QknRJVu1HTW2uDWxO97GppEfiBNVvfsktzZjAEAsFZ9exw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kLPdR/ZBX4OQjEGZjG0WtP5Uyq431ONWz11shvbQQ6c=; b=fmJ9MVZ82Wlrq8ytD+MJvhz+GtVuN949vFhydooLlwNRk5Ef8Mg0Ujox7NnLvhP4sv+BFGrQQs9Dlnr7u4aruXW/tIoJIFoeEE+o9zGY5sb4JP96ejPtI1pldvy6JviH0xSm7Gg77udHon7e0E6md1NCp86tuk7AOT2WfKHNxA0qlI28VF7Kk2f7StGR6/YahNeEaggrDi7Ox2LjfPVTjoaXxqBUJILrlCzqlF/jWwjYT+c4s8LfAbWultZanEbbWTt6RaPt6ulGI+alCcvsh12kPqbguq57ugpSshI3p6iZgwx306kBTo3QTREx+sZYGUWc4IczXDmUfUEObaLCpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kLPdR/ZBX4OQjEGZjG0WtP5Uyq431ONWz11shvbQQ6c=; b=YJYFewyAklnHfgHUq1y57dO/VLON3GRk5LUkbrrHaEBnTipGYCk+yamunkSgIxvgEIMH3GPWzeJpUWyfzpFOUYplqMcsTf34BeMGTid/t7g7pCdLakYhRS0b7b9xlqMXFZ1e/E6Zbeg4uVR5clWXFQ+eG198Tga1jmy1ziJBE3g= Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by SA1PR13MB4846.namprd13.prod.outlook.com (2603:10b6:806:186::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.12; Wed, 14 Sep 2022 01:23:59 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::819:38c:6513:bf15]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::819:38c:6513:bf15%4]) with mapi id 15.20.5632.012; Wed, 14 Sep 2022 01:23:59 +0000 From: Chaoyong He To: Ferruh Yigit , Jerin Jacob Kollanukkaran , Thomas Monjalon , Andrew Rybchenko CC: oss-drivers , Niklas Soderlund , "dev@dpdk.org" Subject: RE: [PATCH v8 05/12] net/nfp: add flower PF setup logic Thread-Topic: [PATCH v8 05/12] net/nfp: add flower PF setup logic Thread-Index: AQHYw19dg3j80tPBok+VUrecrGMPma3VuDcAgAChfyCAAKxagIAF53EAgAAskgCAAQ0PoA== Date: Wed, 14 Sep 2022 01:23:59 +0000 Message-ID: References: <1662626702-17254-1-git-send-email-chaoyong.he@corigine.com> <1662626702-17254-6-git-send-email-chaoyong.he@corigine.com> <49888fb1-e16a-9d55-9855-7e7807922dea@xilinx.com> <82a90702-3873-02bd-e804-ba66aad2d0ef@xilinx.com> <9aed41cf-c1f0-fa2e-cc2c-f4dc1e17f390@xilinx.com> In-Reply-To: <9aed41cf-c1f0-fa2e-cc2c-f4dc1e17f390@xilinx.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR13MB5545:EE_|SA1PR13MB4846:EE_ x-ms-office365-filtering-correlation-id: bb331f3c-11af-4230-f72d-08da95efcce7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OCFaFYRck3IsypNQeCDt8VYP5q3v6emBBJ74ddx7UC4XddQZdM3K1HAHUTJhIp/2yDbHNCzmIOi4uaV1VrQywA+Cs6Ge82uB2r4cqX/G45UIkUTDS2PqTgQrM3ctP37/uRSjzRx8H5zB4e+ZawnSyI3l56MFP81RvqOuOxBEUUkZtJVJvdjjc3U5atWsRBR7dFFyNs1AT9tYgUAeeg+Lpp3IuEOP7oxf4GwQqOW1ccwd1S7BgIb2gOG8doRgftt6FccIvTFR75DupYNl6qZK27qw6clGYAt3Nu8CrI3VTHultPpWsQzUjYujlVKtevRPZAjDo7nhr3seOW+rpnl5WyMZupi7wY4KRs5IdpNTUakKMUh6zq4mexuzNtDRqddge061ciJaXGcRm+C9xO873VyVOSYO+vv9Jkx/d9iPy0/2Ck4Vvq2VWw6POPnFiFoYnZiqp1mPJc3bLxwSyQFLNlGgsrEjGl3/QQXfbtLVtv+iS2tUSbYh7LegVsb/Tg/m+ZbJgehNHFB1SLvzm+tvHxpXmWiqPacpPzROdq9Z4ox/T9f2whVMV0963o1B5hXDJOPCd5Bor21Xsj0uLqrKxBRbfk9lQPsOBeZQi4HFNorZRKr5se9XtcYXnzDXLijCGsgoPPMoSBeF2hfewbGpMf0MW2zNMT4zbpgQulqjU6yNjHMDE25ceuXDwDfVwExfhfgKe2vE/+L17QqAeJ/d/UfXHiU+a3UyPLEPSsfAxq9/oQ21QtcmkkfsgPi3uQD+z6va8zxB+495D8XlqCpD3w== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(39830400003)(366004)(136003)(376002)(346002)(396003)(451199015)(41300700001)(26005)(44832011)(33656002)(71200400001)(86362001)(6506007)(186003)(66574015)(83380400001)(38100700002)(9686003)(76116006)(5660300002)(55016003)(66556008)(8936002)(4326008)(8676002)(122000001)(2906002)(66446008)(52536014)(66476007)(66946007)(54906003)(478600001)(64756008)(7696005)(110136005)(38070700005)(316002)(53546011); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R0w2eDFacU54Ui82KzdWT3hvYkt5YmcySy9tVUhTN0ZuZ2l4bEFGQitvMXNt?= =?utf-8?B?dWZHVnhhR1REd09UT3E1VnNhNnRKcnF4TXk1ekxJbEhudGRxalk0SWxwb0sr?= =?utf-8?B?SkpGd1dXblFkZlgvbmRYUkh4b0RlYnZsclVhbW93V0hrZTJjSVROT1Z0WjIv?= =?utf-8?B?dFJuUjRYT1FXM0VHbUhHakhIaUI2bFVaSHJUQmJCM09GY0R1NFdHSUNCYTBR?= =?utf-8?B?TWRpaTBJUDBHSFJ5QW9jaXo0Ym4yKzdhYWJlZlZlWStaZU9oUExaemQzTm1p?= =?utf-8?B?OFgza3BLZlZxVXVmV2p1UzNQTUhvOG5ZYWtPYnZnQmU0VURwZytXRFRCZVJO?= =?utf-8?B?OW1JMU85VzRJZlE3cy9LdURZekZySVhGbmU4UEVxNjYxdnFibUNRMDlSR0hs?= =?utf-8?B?MmtIWUxRa2hFM0lhb0VvemRjOG1pWHUyNUxDS0R6QU9WVTk3K2VvZ0FCSEpP?= =?utf-8?B?NllUWG56RE50WEVBMDQwOWhzRDV1dUJjYU4vQ2ZZc0ZZZjVoTTExNWxzcENE?= =?utf-8?B?amo1RldSUUVVS2RBUnQzclFKQmhDQUM4Sjg2OGdNYWxCNml1V0phVHB3OXA1?= =?utf-8?B?ZWxqUzhyL0thdjloZU9CeDVSRmo3UGI5QUF2cGJNVW0wZGNYSVBDYzM0ZWVC?= =?utf-8?B?bnhVY1kyNDJxdDVWeWFMczB4eSttRytvVDJNcmtJcFBZMGNucVQ1bXdaRlRI?= =?utf-8?B?SWJkSDFrR0R3cmJoc3BiVXZ6dTlkK0RGNWY1bHU3TGQ5R2hkaG1pMStaZDZn?= =?utf-8?B?RkhUSEZqZGV2MHFRRzRmRHpieGZTUVQzanFVSGhYdTAyRjEyVFVrUWFqNmd4?= =?utf-8?B?QU9PMlovRFJjZnJBOVBET0ZHdGlIb05acHZQYmw2OWpuZTlkUTNvYmJJR2FR?= =?utf-8?B?c1haMGJ5aTRMUjd3ZTdoNEFmYWdnYWZaNlA1di8vb3BKVFY5bUVSb1BoNUpw?= =?utf-8?B?Um1XdS82ZGlnMExlT3NSMDhYWlFSc1dHQklCN216bWFSWHBSbXJRUXNNaHh4?= =?utf-8?B?ZUhlRVFqVWhHZTgvcGFHL2pTZk1KcTQ5NkNMWmkzYnhXajhqWWFnTExxb2Nx?= =?utf-8?B?SzVIcFBuSm1MSUpxSlp1RENkMEQ4U1U2Vm1pbStrYWpOc1hWTUZIU1ZFWTl0?= =?utf-8?B?Y3gyTWhHQUtoZnlUQ3o4NmZ6YVIwN0k4Z1NTZFllUHRYU3dMTFR5RHJWOTVU?= =?utf-8?B?TDZKV3huNUZxOG5BMG1ORk0rQzMzVFBLVzhuNWpjT1FXbXcreTNvR1JvWnc0?= =?utf-8?B?VmNPOXVpNWxzSEpaN1VSV2VxUlBUdktRTWhGRStzY2JEQmRFVkhCRW5JVTNr?= =?utf-8?B?NHIzbW9aazUwUm9GNmQvRm1uOFRJMCtsZWZTOHY0VnlLdnViaURKRnhHOWVi?= =?utf-8?B?cUtwL1Jna28yc3ZiNjhMZzVMWDB2SWxRWVNjZnFhTWs5Ym1jT3BjZG81dUJ1?= =?utf-8?B?Nm5jd1hkdDY5Tjg5ZHNpSUJOZkRHOU41Yi9yOFRqcG5pakFLdVFHMm4yWno4?= =?utf-8?B?TnJZdStCTVlMVVhBa3d0Q3B0d24xNUQxN2hkcUJ0czJ0MG52TGNON0FJQjZh?= =?utf-8?B?akV5NWhyejlvV3hrZ05hQXdiNTFicEN1L2NoM0d5WjBHSmlDbUpzSk1IK21I?= =?utf-8?B?TnJ3Y3haVXNMUzJUOEpQaW8yNW9hZENhRmJMWmFBZEdPR2dPaXRYMDQ2ZUxp?= =?utf-8?B?SElmeUhIQnhsSWFrSmlnYytCUHN1WDA2S1pUWTJpQ3JITy91WEpyb0F1dmdN?= =?utf-8?B?cWFibk9haXhkdE1zaE5BRytFMmMwOG04RjBBblNybUprK1hEQ1BJVHVmUG5x?= =?utf-8?B?bWpqSzIwd2V4OWFGOHV5blBtdVBOTDFzekFHOHZsRzF4Z2tUaUJOV3lXMDZY?= =?utf-8?B?bkNwc3lMQm5LRmdocnNxcERiRThmTC93cVFiS2pMUUZ6cXdRUnlEc1dyaVZV?= =?utf-8?B?bUVUMm1mcXRMZlZ5OUw5c1d3SGYxYXgrWWcvQ3pIa2pWUnZ6Y3FKcm0zakdp?= =?utf-8?B?U0hVTlM2cUZiVUtTWHNoUERocC94emhFSEJJV1BsVlBwUldQZ0xoT1BCQUV6?= =?utf-8?B?UkVPOSs0aUd2WDhkRFAvaVZSQVZ3ZTk0NTlUNkZCeDIvUHNpT0ZmNnN4OUZZ?= =?utf-8?Q?kztr3ZyGKRsA6Q+w5QR3cZGiw?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: corigine.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR13MB4846 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBPbiA5LzEzLzIwMjIgNzo1MSBBTSwgQ2hhb3lvbmcgSGUgd3JvdGU6DQo+ID4NCj4gPj4gT24g OS85LzIwMjIgMzozNiBBTSwgQ2hhb3lvbmcgSGUgd3JvdGU6DQo+ID4+Pj4gT24gOS84LzIwMjIg OTo0NCBBTSwgQ2hhb3lvbmcgSGUgd3JvdGU6DQo+ID4+Pj4+IEFkZHMgdGhlIHZOSUMgaW5pdGlh bGl6YXRpb24gbG9naWMgZm9yIHRoZSBmbG93ZXIgUEYgdk5JQy4gVGhlDQo+ID4+Pj4+IGZsb3dl ciBmaXJtd2FyZSBleHBvc2VzIHRoaXMgdk5JQyBmb3IgdGhlIHB1cnBvc2VzIG9mIGZhbGxiYWNr DQo+ID4+Pj4+IHRyYWZmaWMgaW4gdGhlIHN3aXRjaGRldiB1c2UtY2FzZS4NCj4gPj4+Pj4NCj4g Pj4+Pj4gQWRkcyBtaW5pbWFsIGRldl9vcHMgZm9yIHRoaXMgUEYgZGV2aWNlLiBCZWNhdXNlIHRo ZSBkZXZpY2UgaXMNCj4gPj4+Pj4gYmVpbmcgZXhwb3NlZCBleHRlcm5hbGx5IHRvIERQREsgaXQg c2hvdWxkIGFsc28gYmUgY29uZmlndXJlZA0KPiA+Pj4+PiB1c2luZyBEUERLIGhlbHBlcnMgbGlr ZSBydGVfZXRoX2NvbmZpZ3VyZSgpLiBGb3IgdGhlc2UgaGVscGVycyB0bw0KPiA+Pj4+PiB3b3Jr IHRoZSBmbG93ZXIgbG9naWMgbmVlZHMgdG8gaW1wbGVtZW50cyBhIG1pbmltYWwgc2V0IG9mIGRl dl9vcHMuDQo+ID4+Pj4+DQo+ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IENoYW95b25nIEhlIDxjaGFv eW9uZy5oZUBjb3JpZ2luZS5jb20+DQo+ID4+Pj4+IFJldmlld2VkLWJ5OiBOaWtsYXMgU8O2ZGVy bHVuZCA8bmlrbGFzLnNvZGVybHVuZEBjb3JpZ2luZS5jb20+DQo+ID4+DQo+ID4+IDwuLi4+DQo+ ID4+DQo+ID4+Pj4+ICtzdGF0aWMgaW50DQo+ID4+Pj4+ICtuZnBfZmxvd2VyX2luaXRfcGZfdm5p YyhzdHJ1Y3QgbmZwX25ldF9odyAqaHcpIHsgIGludCByZXQ7DQo+ID4+Pj4+ICt1aW50MTZfdCBp OyAgdWludDE2X3Qgbl90eHE7ICB1aW50MTZfdCBuX3J4cTsgIHVpbnQxNl90IHBvcnRfaWQ7DQo+ ID4+Pj4+ICt1bnNpZ25lZCBpbnQgbnVtYV9ub2RlOyAgc3RydWN0IHJ0ZV9tZW1wb29sICptcDsg IHN0cnVjdA0KPiA+Pj4+PiArbmZwX3BmX2RldiAqcGZfZGV2OyAgc3RydWN0IHJ0ZV9ldGhfZGV2 ICpldGhfZGV2OyAgc3RydWN0DQo+ID4+Pj4+ICtuZnBfYXBwX2Z3X2Zsb3dlciAqYXBwX2Z3X2Zs b3dlcjsNCj4gPj4+Pj4gKw0KPiA+Pj4+PiArIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9j b25mIHBvcnRfY29uZiA9IHsNCj4gPj4+Pj4gKyAgICAgICAgIC5yeG1vZGUgPSB7DQo+ID4+Pj4+ ICsgICAgICAgICAgICAgICAgIC5tcV9tb2RlICA9IFJURV9FVEhfTVFfUlhfUlNTLA0KPiA+Pj4+ PiArICAgICAgICAgICAgICAgICAub2ZmbG9hZHMgPSBSVEVfRVRIX1JYX09GRkxPQURfQ0hFQ0tT VU0sDQo+ID4+Pj4+ICsgICAgICAgICB9LA0KPiA+Pj4+PiArICAgICAgICAgLnR4bW9kZSA9IHsN Cj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgLm1xX21vZGUgPSBSVEVfRVRIX01RX1RYX05PTkUs DQo+ID4+Pj4+ICsgICAgICAgICB9LA0KPiA+Pj4+PiArIH07DQo+ID4+Pj4+ICsNCj4gPj4+Pj4g KyAvKiBTZXQgdXAgc29tZSBwb2ludGVycyBoZXJlIGZvciBlYXNlIG9mIHVzZSAqLyBwZl9kZXYg PQ0KPiA+Pj4+PiArIGh3LT5wZl9kZXY7IGFwcF9md19mbG93ZXIgPQ0KPiBORlBfUFJJVl9UT19B UFBfRldfRkxPV0VSKHBmX2Rldi0NCj4gPj4+Pj4gYXBwX2Z3X3ByaXYpOw0KPiA+Pj4+PiArDQo+ ID4+Pj4+ICsgLyoNCj4gPj4+Pj4gKyAgKiBQZXJmb3JtIHRoZSAiY29tbW9uIiBwYXJ0IG9mIHNl dHRpbmcgdXAgYSBmbG93ZXIgdk5JQy4NCj4gPj4+Pj4gKyAgKiBNb3N0bHkgcmVhZGluZyBjb25m aWd1cmF0aW9uIGZyb20gaGFyZHdhcmUuDQo+ID4+Pj4+ICsgICovDQo+ID4+Pj4+ICsgcmV0ID0g bmZwX2Zsb3dlcl9pbml0X3ZuaWNfY29tbW9uKGh3LCAicGZfdm5pYyIpOyBpZiAocmV0ICE9IDAp DQo+ID4+Pj4+ICsgICAgICAgICBnb3RvIGRvbmU7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyBody0+ ZXRoX2RldiA9IHJ0ZV9ldGhfZGV2X2FsbG9jYXRlKCJuZnBfcGZfdm5pYyIpOw0KPiA+Pj4+PiAr IGlmIChody0+ZXRoX2RldiA9PSBOVUxMKSB7DQo+ID4+Pj4+ICsgICAgICAgICByZXQgPSAtRU5P TUVNOw0KPiA+Pj4+PiArICAgICAgICAgZ290byBkb25lOw0KPiA+Pj4+PiArIH0NCj4gPj4+Pj4g Kw0KPiA+Pj4+PiArIC8qIEdyYWIgdGhlIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcnRl X2V0aF9kZXYgaGVyZSAqLw0KPiA+Pj4+PiArIGV0aF9kZXYgPSBody0+ZXRoX2RldjsNCj4gPj4+ Pj4gKw0KPiA+Pj4+PiArIG51bWFfbm9kZSA9IHJ0ZV9zb2NrZXRfaWQoKTsNCj4gPj4+Pj4gKw0K PiA+Pj4+PiArIC8qIEZpbGwgaW4gc29tZSBvZiB0aGUgZXRoX2RldiBmaWVsZHMgKi8gZXRoX2Rl di0+ZGV2aWNlID0NCj4gPj4+Pj4gKyAmcGZfZGV2LT5wY2lfZGV2LT5kZXZpY2U7IGV0aF9kZXYt PmRhdGEtPmRldl9wcml2YXRlID0gaHc7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAvKiBDcmVhdGUg YSBtYnVmIHBvb2wgZm9yIHRoZSBQRiAqLw0KPiA+Pj4+PiArIGFwcF9md19mbG93ZXItPnBmX3Br dG1idWZfcG9vbCA9IG5mcF9mbG93ZXJfcGZfbXBfY3JlYXRlKCk7DQo+IGlmDQo+ID4+Pj4+ICsg KGFwcF9md19mbG93ZXItPnBmX3BrdG1idWZfcG9vbCA9PSBOVUxMKSB7DQo+ID4+Pj4+ICsgICAg ICAgICByZXQgPSAtRU5PTUVNOw0KPiA+Pj4+PiArICAgICAgICAgZ290byBwb3J0X3JlbGVhc2U7 DQo+ID4+Pj4+ICsgfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgbXAgPSBhcHBfZndfZmxvd2VyLT5w Zl9wa3RtYnVmX3Bvb2w7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAvKiBBZGQgUngvVHggZnVuY3Rp b25zICovDQo+ID4+Pj4+ICsgZXRoX2Rldi0+ZGV2X29wcyA9ICZuZnBfZmxvd2VyX3BmX3ZuaWNf b3BzOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgLyogUEYgdk5JQyBnZXRzIGEgcmFuZG9tIE1BQyAq Lw0KPiA+Pj4+PiArIGV0aF9kZXYtPmRhdGEtPm1hY19hZGRycyA9IHJ0ZV96bWFsbG9jKCJtYWNf YWRkciIsDQo+ID4+Pj4gUlRFX0VUSEVSX0FERFJfTEVOLCAwKTsNCj4gPj4+Pj4gKyBpZiAoZXRo X2Rldi0+ZGF0YS0+bWFjX2FkZHJzID09IE5VTEwpIHsNCj4gPj4+Pj4gKyAgICAgICAgIHJldCA9 IC1FTk9NRU07DQo+ID4+Pj4+ICsgICAgICAgICBnb3RvIG1lbXBvb2xfY2xlYW51cDsNCj4gPj4+ Pj4gKyB9DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyBydGVfZXRoX3JhbmRvbV9hZGRyKGV0aF9kZXYt PmRhdGEtPm1hY19hZGRycy0+YWRkcl9ieXRlcyk7DQo+ID4+Pj4+ICsgcnRlX2V0aF9kZXZfcHJv YmluZ19maW5pc2goZXRoX2Rldik7DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKyAvKiBDb25maWd1cmUg dGhlIFBGIGRldmljZSBub3cgKi8gbl9yeHEgPSBody0+bWF4X3J4X3F1ZXVlczsNCj4gPj4+Pj4g KyBuX3R4cSA9IGh3LT5tYXhfdHhfcXVldWVzOyBwb3J0X2lkID0gaHctPmV0aF9kZXYtPmRhdGEt DQo+ID5wb3J0X2lkOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsgcmV0ID0gcnRlX2V0aF9kZXZfY29u ZmlndXJlKHBvcnRfaWQsIG5fcnhxLCBuX3R4cSwgJnBvcnRfY29uZik7DQo+ID4+Pj4NCj4gPj4+ PiBTdGlsbCBub3Qgc3VyZSBhYm91dCBQTUQgY2FsbGluZyAncnRlX2V0aF9kZXZfY29uZmlndXJl KCknLCBjYW4geW91DQo+ID4+Pj4gcGxlYXNlIGdpdmUgbW9yZSBkZXRhaWxzIG9uIHdoYXQgc3Bl Y2lmaWMgY29uZmlndXJhdGlvbiBpcyBleHBlY3RlZA0KPiA+Pj4+IHdpdGgNCj4gPj4gdGhhdCBj YWxsPw0KPiA+Pj4NCj4gPj4+IFRoZSBtYWluIGNvbmZpZ3VyYXRpb24gd2UgbmVlZCBpcyB0aGUg bnVtYmVyIG9mIHJ4L3R4IHF1ZXVlLg0KPiA+Pj4gU28gd2Ugc2hvdWxkIHVzZSB0aGUgaW50ZXJu YWwgYXBpIGBldGhfZGV2X3J4L3R4X3F1ZXVlX2NvbmZpZ2AgdG8NCj4gaW5zdGVhZD8NCj4gPj4+ DQo+ID4+DQo+ID4+IG5iX3J4X3EvbmJfdHhfcSBhcmUgcGFyYW1ldGVycyBwcm92aWRlZCBieSB1 c2VyICh2aWENCj4gPj4gcnRlX2V0aF9kZXZfY29uZmlndXJlKCkpLCB3b24ndCBpcyB3cm9uZyBm b3IgUE1EIHRvIHNldCBhIHZhbHVlIG9uIGl0cw0KPiBvd24/DQo+ID4+DQo+ID4+IFdoeSBuYl9y eF9xL25iX3R4X3EgYXJlIHJlcXVpcmVkIGluIHRoZSBwcm9iZSgpIHN0YWdlPyBQcm9iZSBzdGFn ZSBpcw0KPiA+PiBub3QgdG8gY29uZmlndXJlIHRoZSBkZXZpY2UuDQo+ID4NCj4gPiBPdXIgbmZw IGNhcmQgdXNlIGBjb250cm9sIG1lc3NhZ2VgIHRvIGV4Y2hhbmdlIG1lc3NhZ2UgYmV0d2VlbiBQ TUQNCj4gYW5kIGZpcm13YXJlIHdoZW4gd2UgdXNlIGZsb3dlciBmaXJtd2FyZS4NCj4gPiBUaGUg Y29udHJvbCBtZXNzYWdlIGlzIGluIHRoZSBmb3JtIG9mIHBrdCBhbmQgd2UgdXNlIGEgYGN0cmwg dk5JQ2AgZWh0ZGV2IGFzDQo+IHRoZSBhZ2VudCB0byBzZW5kIGFuZCByZWNlaXZlIHRoZXNlIHBr dHMuDQo+ID4gZS5nLiwgaWYgd2Ugd2FudCB0byBjcmVhdGUgcmVwcmVzZW50b3IgcG9ydCwgdGhl IFBNRCBtdXN0IHNlbmQgdGhlDQo+IGNvcnJlc3BvbmRpbmcgY29udHJvbCBtZXNzYWdlIHRvIGZp cm13YXJlLg0KPiA+DQo+ID4gVGhpcyBgY3RybCB2TklDYCBpcyB0b3RhbGx5IHVzZXIgYXBwIElu dmlzaWJsZSwgIHRvIG1ha2UgaXQgYWJsZSB0byBzZW5kIGFuZA0KPiByZWNlaXZlIHBrdCwgd2Ug bXVzdCBkbyBzb21lIGNvbmZpZ3VyZSBzdGVwcyB0byB0aGlzIGV0aGRldiBvdXJzZWx2ZXMgZmly c3RseS4NCj4gPiBXZSBjYW4gZG9uJ3QgdXNlICdydGVfZXRoX2Rldl9jb25maWd1cmUoKScsIGJ1 dCB3ZSBzdGlsbCBzaG91bGQgZG8gdGhlDQo+IG5lZWRlZCBjb25maWd1cmUgc3RlcHMgdG8gbWFr ZSBzdXJlIHRoZSBkZXZpY2UgY2FuIHdvcmsuDQo+ID4NCj4gDQo+IEhvdyBldGhkZXYgaW5zdGFu Y2UgYmVjb21lcyBhcHAgaW52aXNpYmxlLCB1bmxlc3Mgb3duZXIgc2V0IHByb3Blcmx5IEkNCj4g dGhpbmsgYXBwcyBjYW4gYWJsZSB0byBzZWUgaXQuDQo+IEFuZCBpZiBuZWVkcyB0byBiZSBpbnRl cm5hbCwgZG8geW91IHJlYWxseSBuZWVkIHRvIGNyZWF0ZSBhbiBldGhkZXY/IFdoeSBub3QNCj4g Y29tbXVuaWNhdGUgd2l0aCBIVyB2aWEgaW50ZXJuYWwgZnVuY3Rpb25zPw0KPiANCj4gQ2MnZWQg SmVyaW4sIHRoZWlyIGRyaXZlciBhbHNvIGNvbW11bmljYXRlIHdpdGggRlcgYmVmb3JlIHByb2Jp bmcuDQo+IEBKZXJpbiwgY2FuIHlvdSBwbGVhc2UgcmV2aWV3IHRoaXMgcGF0Y2ggYW5kIGhlbHAg b24gdGhlIGRlc2lnbj8NCj4gDQo+IEBUaG9tYXMsIEBBbmRyZXcsIGNhbiB5b3UgcGxlYXNlIGNo ZWNrIHRoZSBkZXNpZ24gdG9vPw0KDQpUaGVyZSBzdGlsbCBtYWluIHByb2JsZW0gZm9yIG5vdzoN CjEuIERyaXZlciBzaG91bGRuJ3QgbmVlZCB0byB1cGRhdGUgdGhlIGJ1cyByZWxhdGVkIGRhdGEg c3RydWN0Lg0KMi4gUHJvYmUgc3RhZ2Ugc2hvdWxkIG5vdCBjb25maWd1cmUgdGhlIGRldmljZS4N CkFuZCB0aGUgZmlyc3QgcHJvYmxlbSB3b24ndCBleGlzdCBpZiB3ZSBzb2x2ZSB0aGUgc2Vjb25k IHByb2JsZW0uIA0KDQpTbywgaG93IGFib3V0IHdlIG1vdmUgYWxsIHRoZSBsb2dpY3MgcmVsYXRl cyB0byBjb25maWd1cmF0aW9uIGludG8gc2VydmljZT8NCkFjY29yZGluZyB0byB0aGUgbG9naWMg aW4gcnRlX2VhbF9pbml0KCk6DQpgYGANCi4uLg0KaWYgKHJ0ZV9idXNfcHJvYmUoKSkgew0KLi4u DQpyZXQgPSBydGVfc2VydmljZV9zdGFydF93aXRoX2RlZmF1bHRzKCk7DQoJaWYgKHJldCA8IDAg JiYgcmV0ICE9IC1FTk9UU1VQKSB7DQouLi4NCmBgYA0KVGhlbiB0aGlzIGNhbiBndWFyYW50ZWUg dGhhdCB0aGVzZSBsb2dpY3MgcnVuIGFmdGVyIHRoZSBwcm9iZSBzdGFnZS4NCg0KSSdsbCBzZW5k IGEgbmV3IHZlcnNpb24gcGF0Y2ggc2VyaWVzIGJhc2VkIG9uIHRoaXMsIGFuZCB3ZSBjYW4gY29u dGludWUgZGlzY3Vzc2luZyBhYm91dCB0aGUgYmVzdCBjaG9pY2UuDQpUaGFua3MhDQoNCg==