From nobody Thu Dec 01 11:54:22 2022 X-Original-To: freebsd-hackers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4NNDyg6CnTz4hyVq for ; Thu, 1 Dec 2022 11:54:51 +0000 (UTC) (envelope-from schakrabarti@microsoft.com) Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on20700.outbound.protection.outlook.com [IPv6:2a01:111:f400:feae::700]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NNDyf6qbfz3NL6 for ; Thu, 1 Dec 2022 11:54:50 +0000 (UTC) (envelope-from schakrabarti@microsoft.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=microsoft.com header.s=selector2 header.b=TtrG0hj2; spf=pass (mx1.freebsd.org: domain of schakrabarti@microsoft.com designates 2a01:111:f400:feae::700 as permitted sender) smtp.mailfrom=schakrabarti@microsoft.com; dmarc=pass (policy=reject) header.from=microsoft.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=etPhZgXmyU4EuiF0C9OqSGV0BFb1mjOkpyKmhm9jQgNs693tl7pyuXLr0uaFLxI2NBSeDIQtFrEivkdRTjk7hYglqzgjFV5nB3oAPu9Feb1sG34ll1+DcJciTzUniruoD9JqM/A1lk2e4wjMM6pJ2fo0Ztq1Md5BE7ihp41I0YNP6umbwxN8bfe8rXQxIiw3+YCrgDbF10WtdItFqmIonZwWtSxFiFkEcqhb0qOazDgMSp7Jx4KTxyOyHRh5t4rkz+EZhXc9jIBtBAzUnNANOio6B+ADHMk17nOZ6/Xu86QXgz0UrkZyh56+mpNwRSYX4++oUDQk+WMHDwIe4sbe5g== 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=FXEx+QwWkoIYSM87F19Vc8nqMafPCZ4ACkOdeSNmeRs=; b=gJlM59SB178jlvM1sn2rmeQOt15l2905X9AUr4iqWOJFi9ykRhhVeegUnwR2IBWbbF0TV3SRK8QFge7h4lBuPyNXjQcHGS1p1QOW2CMNaF22z7a0o+2D6Hh35If8zv0IXLynv6liVcP10rw42LeELC0mQv3uxRgneJKA6pGPS8zDc60Olo52obaglUbCn9iITyylb6K4VybZ44bMxJzZqAFmioogwHda5P62SOanvUIpQmOCw6T/DD86MG1jgDitsiIQPbbjNMiI5tCvVqFSAXrbS909p7PUHC07OyyCovOJM7IEiPkBc07uzJz/EhjInoCNjWpz7BP68/XZAw0X4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FXEx+QwWkoIYSM87F19Vc8nqMafPCZ4ACkOdeSNmeRs=; b=TtrG0hj28on/K2lRFKS3zHADoQY015LHn7REReCk3PP1hkjIsRPgdxKA9tl7JY9UPGXa26BFvSXenmJPUw4UPNeLzP1bVNk/6n1hFcPWTYzfHOsrFq6De8qUSaHD4U7P6BWzYfwyFq81xV8tYDxEBQ/oquJvPCRHwZyJ66cCbCk= Received: from PSAP153MB0536.APCP153.PROD.OUTLOOK.COM (2603:1096:301:75::14) by KL1P15301MB0433.APCP153.PROD.OUTLOOK.COM (2603:1096:820:2e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5901.4; Thu, 1 Dec 2022 11:54:24 +0000 Received: from PSAP153MB0536.APCP153.PROD.OUTLOOK.COM ([fe80::a551:8649:2ead:ce53]) by PSAP153MB0536.APCP153.PROD.OUTLOOK.COM ([fe80::a551:8649:2ead:ce53%9]) with mapi id 15.20.5901.008; Thu, 1 Dec 2022 11:54:23 +0000 From: Souradeep Chakrabarti To: Andrew Turner CC: Warner Losh , Wei Hu , "freebsd-hackers@FreeBSD.org" Subject: RE: [EXTERNAL] pcib msix allocation in arm64 Thread-Topic: [EXTERNAL] pcib msix allocation in arm64 Thread-Index: AQHY74L1rP0eJIPY3Ee6pTYdK5o1bK5ZC9Og Date: Thu, 1 Dec 2022 11:54:22 +0000 Message-ID: References: <146F5D18-6366-4953-A8D9-61FE7EC67F71@fubar.geek.nz> <947DBD67-6443-480F-82DA-2BDDF44C3D03@fubar.geek.nz> In-Reply-To: <947DBD67-6443-480F-82DA-2BDDF44C3D03@fubar.geek.nz> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=cb7f752c-268d-41e0-9b42-84d4b73decbb;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2022-12-01T11:09:47Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PSAP153MB0536:EE_|KL1P15301MB0433:EE_ x-ms-office365-filtering-correlation-id: cde01b5b-c049-4340-df0f-08dad392c9b3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vZ2kbUfNjYaUmiuP+BuuRexnzZeyDV1BjKZLF5GSKNtqWHCFgM6LGtMqwQC6HTIfS7M/l7kY8+aX0ZZk1xIa/giWWe7vTpPSr8mW+RUkkzwfbooEl89VKSRZYPhVYuEJYYdkiEncM3FL05Jl7lqEWSyA8idma/HHVTG+QBYN1oQ1pJh/KVuJyPA0HhdfZoy/CKztdo4+DeR1vOW8P4EGRA+tQdSKdnf9/j+9waZwhOK4+nvzeEEF51GNzluU4IwHDOvceSNkoXuCvhdHH2Jx5YuhQe33y2+4FRdXOv1ZVEfetRfymK0uZH3nJdCElDC3fwalJ8eje0gccHirqzYPs+r9mWvhkXpJ5NuhdLgXDsM9/8QUPi5lFnxRi5PuR2mJC8BQ2/c3jNIJR+PxnWtyiEh85wu15ZdeVYzQd9mTB6NXIxtNUqTR++6+07tI6mMY96PzN7D+4CpGdV2IXF5aM4KSROALyxBYxgH5lviABhNH34W6yRuGQAOtyQdypZlj0BfO1T8uQ4G9ceCRki3Yu9eOFhq72quGffTEhE3/L0rKo3ChvM2dJziTK/b2Pe2jjU3rr3nMznhSiaC5oRyHLcW2QEEf8w4X9cUnssJx3lgSNCYSEh/wMFutVCtnWk3D+G4VPFHm1GuIAMCgH3bbO3tF0E12KtFi+6scOkR4YOTpdQdZgcFOX3A7YB2F9nSTBptlLjagRadnSvdgz1fuhYf+LZ1HMgU0Tb8v2kLyt44uz/uECTaeRoSpEY2hr/78 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PSAP153MB0536.APCP153.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230022)(4636009)(136003)(39860400002)(376002)(396003)(346002)(366004)(451199015)(122000001)(38100700002)(66476007)(71200400001)(41300700001)(82960400001)(10290500003)(54906003)(316002)(8676002)(6916009)(5660300002)(82950400001)(478600001)(8936002)(52536014)(66446008)(66946007)(83380400001)(66556008)(4326008)(64756008)(76116006)(33656002)(38070700005)(2906002)(55016003)(7696005)(53546011)(8990500004)(186003)(6506007)(86362001)(9686003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eUU4ejFvUElueG5EVld6MkFkSnJjOC9SRFc2WmJ4YzNyZ2NydWh6K05xa3V6?= =?utf-8?B?eTV2WWh3UHM0OHpoclJZMHBEN2pJTVc2aFBjaG9UVVhzVzZKSWVxZXBSbmls?= =?utf-8?B?NlpmUXdtVHZ2bGVBcmN6VEhWektTUmhBNlV6QnlFK1piMkI0SkRYNjY3Q3lY?= =?utf-8?B?QWRDNm1OVTlyUUlmcjdRZ1dKdlBGMzFiM3VFTnduNXpleEYrUWpCSTFrQi9y?= =?utf-8?B?bnFwSGhxaUFpWmk5bjhxNHNaNm05YWw0OGNLOHB0Rm5uTk43elp0R0JPVC84?= =?utf-8?B?U1NMQ01JbmRORkM0bmQyZ2JraHJYVkNFelFodTA2bUMxelpQVGFZWTYwd2E2?= =?utf-8?B?MUtxcXJEQ05wRkpZeE96R0tnd0V5YjFPMTVIck04dkJUSlRFMmRUWUkreExL?= =?utf-8?B?RXZlcklKZXNvQTJWQmdySnQ5a3NZU1pxZU82dFVIWXpBQzdwWDd0SWs2NVR6?= =?utf-8?B?WUVCdzhWSnd6empjV3dmek0rZzJnclZmMjNkQXZ1VFZBL3gycXk1bStVWVNJ?= =?utf-8?B?YmJzWmp2dU5qWk1mVjNSSHNCYmJFejIydExtSkpiQ2E0Q1VQZGtZNTl2am96?= =?utf-8?B?STdpalNsL0p4aFJwN21Ca2tCaGxhT2hoVTA4NTh4YUVVdk1zYS84bUJWWHJ6?= =?utf-8?B?N0R1d2VrZ0pVUUNIL1FseGhkK1dtbHNyekE2OW83V1pRVGtWQ0tXR3JtbkpC?= =?utf-8?B?b3dPR05CcjJvdkFuZjNLTHVwM0R2VS82SU9EVnFudWpWNGhRMVRNMHQ0ejRa?= =?utf-8?B?T1NWUkdSWjBVSVRqSVBYdWxrS0c3L1RIT2R3K1RHTmF6aUVJbU5naVdPUVlP?= =?utf-8?B?Mm9NRHc5SkUwTHFuelVza1pORHA2VGJXcDNFWmZaaWtkZmw4aG04bGQrM3Yr?= =?utf-8?B?WSs3TTBxVlVJZGNXL2o3cGVHclU2MkhXcFQ2UmI5d0pZMHMrREdlZ016RjNa?= =?utf-8?B?c0pZU0swUjRJaWE1bEliQnU0NERXekdxdC9PWkVGZGZBKzU3Yjl3VVgwbXk4?= =?utf-8?B?WnFxZWkyMlNDdE15aHBUZStuSW83aml5c3VheUpTUDFwbURDbUQrbmRHY0ph?= =?utf-8?B?Yks5ZlE3ZUE1bGxWczVMcFltRlVpNXQ5L0pSd2hOSVVQVHJhQXdkT0xMZk84?= =?utf-8?B?ckxxbVF1RzRpRDE5RnAxa3RCTUdzaWRyMXI0eld4QmRPdEQyTGFFeDA1SXpS?= =?utf-8?B?d2JGNnZDZmNuUHBFV0duTXV4dFYyRmoxVHNFdTZ3dUFQbkNBa2hrQ3Nlclh2?= =?utf-8?B?UlBlTFhKTmtNbDdJSU1TeXhsOTZKQ1VKMUlLdkJkbi9NNzl0WWZ5V1pKS2sw?= =?utf-8?B?MXRncnpHR1l2UVNmSzRFNjZiQVBkUmJMdTFweHlBamh1RGg0bHRWeHJhQVdP?= =?utf-8?B?RElhOFl1Ty9UYVZ1N1RKMHozaEwrV2gyUG5TeGoyNUc2VUNCUFFGcWNGVW1N?= =?utf-8?B?WXU2UzF5ckJmbW1hend4SjJ5NlM1dUJramJkeFA1NUVHdUVKTnluZTRVUDl1?= =?utf-8?B?ODNZTHpPazFFOXNZZFg0cjVlTXF5UXhDTDE2aFV4Wk5ESklsTmV4cTNrR2V3?= =?utf-8?B?ZytaeVVBeHNKd0hSL0E1VEhuZDJDQlB4aEVKTkJJNmhSZFA2U0RtR0kyUzZM?= =?utf-8?B?c1gzRld5R3V2MDYxSG9HaHBRYjNJdi9ieWZJQW1XajRYamp3dzNQelNpMndv?= =?utf-8?B?NEpDeTd2bXpPUWtIODJMbW5oYmU4aXBmVmMwVmhLZlpWMkxVM1ROeVBwN0Vh?= =?utf-8?B?Vk96MG5oR0I3QnVodHlzNitNTGRDVjNNR1Z1blJyNGFvTm91ZVJYaGU1UFFa?= =?utf-8?B?UTRwaUx3Yk9zQk8rbndVSXRPUFEzcTJCbnpSQTNBS2libkhtaGxRZDAxOUo0?= =?utf-8?B?djJDM0FaZ29HditoOG0zSnFOZVZ4Z3o4dE9wc0NQMXdhRmdUSXZ3TXl3YlJI?= =?utf-8?B?NFdudVppckxaTDBrdEpiZnB3RTMxcGUrV0tLSnl5eEFGRzh6R0NxSDU1ZUJN?= =?utf-8?B?WGphNHJYL25mSlN6RUdqVVN0SG92Ym1oRTBlUG15ZzV3RXpYdE43L2NIblN0?= =?utf-8?B?VUkxb01wbW9wRnFwNS9zamVsdUhGTkI5OWpJMTZ4eXdsWWV6eHFtYzVCMWgr?= =?utf-8?Q?UElzpGjm1/ZF09oz2HhyVvV9K?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 List-Id: Technical discussions relating to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-hackers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-hackers@freebsd.org MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PSAP153MB0536.APCP153.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: cde01b5b-c049-4340-df0f-08dad392c9b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2022 11:54:22.8912 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: FY47+mIv11HYQ2BEaTVzkiPnrJUAbesmuwBIAQ4vowR/1tQzMPJLuDEwI/Fk09F/0Z8aebuRSJCTAy+KYmIGvXC49acAWU8drUJDr8CdNyI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1P15301MB0433 X-Spamd-Result: default: False [-9.88 / 15.00]; WHITELIST_SPF_DKIM(-3.00)[microsoft.com:d:+,microsoft.com:s:+]; DWL_DNSWL_MED(-2.00)[microsoft.com:dkim]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.98)[-0.981]; DMARC_POLICY_ALLOW(-0.50)[microsoft.com,reject]; R_SPF_ALLOW(-0.20)[+ip6:2a01:111:f400::/48]; R_DKIM_ALLOW(-0.20)[microsoft.com:s=selector2]; MIME_BASE64_TEXT(0.10)[]; MIME_GOOD(-0.10)[text/plain]; ASN(0.00)[asn:8075, ipnet:2a01:111:f000::/36, country:US]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; MLMMJ_DEST(0.00)[freebsd-hackers@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; FROM_HAS_DN(0.00)[]; DKIM_TRACE(0.00)[microsoft.com:+]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[] X-Rspamd-Queue-Id: 4NNDyf6qbfz3NL6 X-Spamd-Bar: --------- X-ThisMailContainsUnwantedMimeParts: N DQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbmRyZXcgVHVybmVy IDxhbmRyZXdAZnViYXIuZ2Vlay5uej4NCj4gU2VudDogVGh1cnNkYXksIE5vdmVtYmVyIDMsIDIw MjIgNjoyMSBQTQ0KPiBUbzogU291cmFkZWVwIENoYWtyYWJhcnRpIDxzY2hha3JhYmFydGlAbWlj cm9zb2Z0LmNvbT4NCj4gQ2M6IFdhcm5lciBMb3NoIDxpbXBAYnNkaW1wLmNvbT47IFdlaSBIdSA8 d2VoQG1pY3Jvc29mdC5jb20+OyBmcmVlYnNkLQ0KPiBoYWNrZXJzQEZyZWVCU0Qub3JnDQo+IFN1 YmplY3Q6IFJlOiBbRVhURVJOQUxdIHBjaWIgbXNpeCBhbGxvY2F0aW9uIGluIGFybTY0DQo+IA0K PiBIaSBTb3VyYWRlZXAsDQo+IA0KPiBGb3IgdGhlIHZtYnVzX3BjaWIgZHJpdmVyIHlvdeKAmWxs IG5lZWQgdG8gaW1wbGVtZW50IHRoZSBwY2liX2FsbG9jX21zaSwNCj4gcGNpYl9yZWxlYXNlX21z aSwgYW5kIHRoZSBtc2l4IHZlcnNpb25zLCBhbmQgcGNpYl9tYXBfbXNpLg0KPiANCj4gRm9yIGFs bG9jIGFuZCByZWxlYXNlIHlvdSBjYW4ganVzdCBjYWxsIGludG8gdGhlIHNhbWUgaW50cl8qIGZ1 bmN0aW9uIGFzDQo+IHBjaV9ob3N0X2dlbmVyaWNfYWNwaS5jLiBZb3XigJlsbCBuZWVkIHRvIHBh c3MgaW4gdGhlIHhyZWYgZm9yIHRoZSBpbnRlcnJ1cHQgY29udHJvbGxlci4NCj4gSXQgbmVlZHMg dG8gYmUgdGhlIHhyZWYgdGhlIE1TSSBjb250cm9sbGVyIHJlZ2lzdGVyZWQuIEZvciB0aGUgR0lD djJtIGl04oCZcw0KPiBBQ1BJX01TSV9YUkVGLg0KW1NvdXJhZGVlcF0gDQpJIGFtIGN1cnJlbnRs eSBzcGVjaWZ5aW5nIGdpY19tYmlfc3RhcnQgYW5kIGdpY19tYmlfZW5kIHdpdGggU1BJIHN0YXJ0 IGFuZCBlbmQgbnVtYmVyLCBpbiBnaWNfdjNfYWNwaV9hdHRhY2goKSBhbmQgDQpJIGNhbiBzZWUg bXkgaW50cl9hbGxvY19tc2koKSBhbmQgaW50cl9tYXBfbXNpKCkgYXJlIHdvcmtpbmcuIEJ1dCB0 aGVuIG1seCBkcml2ZXIgaXMNCmdldHRpbmcgc3R1Y2sgYXQgQ1JFQVRFX0VRIC4gDQoNCm1seDVf Y29yZTA6IFdBUk46IHdhaXRfZnVuYzo5Njc6KHBpZCAwKTogQ1JFQVRFX0VRKDB4MzAxKSB0aW1l b3V0LiBXaWxsIGNhdXNlIGEgbGVhayBvZiBhIGNvbW1hbmQgcmVzb3VyY2UNCm1seDVfY29yZTA6 IFdBUk46IG1seDVfc3RhcnRfZXFzOjU4ODoocGlkIDApOiBmYWlsZWQgdG8gY3JlYXRlIGFzeW5j IEVRIC02MA0KbWx4NV9jb3JlMDogRVJSOiBtbHg1X2xvYWRfb25lOjExNTc6KHBpZCAwKTogRmFp bGVkIHRvIHN0YXJ0IHBhZ2VzIGFuZCBhc3luYyBFUXMNCm1seDVfY29yZTA6IFdBUk46IHdhaXRf ZnVuYzo5Njc6KHBpZCAwKTogTUFOQUdFX1BBR0VTKDB4MTA4KSB0aW1lb3V0LiBXaWxsIGNhdXNl IGEgbGVhayBvZiBhIGNvbW1hbmQgcmVzb3VyY2UNCm1seDVfY29yZTA6IEVSUjogcmVjbGFpbV9w YWdlczo0NDQ6KHBpZCAwKTogZmFpbGVkIHJlY2xhaW1pbmcgcGFnZXMNCm1seDVfY29yZTA6IFdB Uk46IG1seDVfcmVjbGFpbV9zdGFydHVwX3BhZ2VzOjU3NDoocGlkIDApOiBmYWlsZWQgcmVjbGFp bWluZyBwYWdlcyAoLTYwKQ0KbWx4NV9jb3JlMDogRVJSOiBpbml0X29uZToxNjQ0OihwaWQgMCk6 IG1seDVfbG9hZF9vbmUgZmFpbGVkIC02MA0KDQoNCmdpY192M19hY3BpX2F0dGFjaCggKQ0KLS0N Ci0tDQozMjMgICAgIHNjLT5naWNfbWJpX3N0YXJ0ID0gNjQ7DQozMjQgICAgIHNjLT5naWNfbWJp X2VuZCA9IDkyMDsNCjMyNQ0KMzI2ICAgICBlcnIgPSBnaWNfdjNfYXR0YWNoKGRldik7DQozMjcg ICAgIGlmIChlcnIgIT0gMCkNCjMyOCAgICAgICAgIGdvdG8gZXJyb3I7DQozMjkNCjMzMCAgICAg c2MtPmdpY19waWMgPSBpbnRyX3BpY19yZWdpc3RlcihkZXYsIEFDUElfSU5UUl9YUkVGKTsNCjMz MSAgICAgaWYgKHNjLT5naWNfcGljID09IE5VTEwpIHsNCjMzMiAgICAgICAgIGRldmljZV9wcmlu dGYoZGV2LCAiY291bGQgbm90IHJlZ2lzdGVyIFBJQ1xuIik7DQozMzMgICAgICAgICBlcnIgPSBF TlhJTzsNCjMzNCAgICAgICAgIGdvdG8gZXJyb3I7DQozMzUgICAgIH0NCjMzNiAgICAgZXJyID0g aW50cl9tc2lfcmVnaXN0ZXIoZGV2LCBBQ1BJX01TSV9YUkVGKTsNCjMzNyAgICAgaWYgKGVycikg ew0KMzM4ICAgICAgICAgZGV2aWNlX3ByaW50ZihkZXYsICJjb3VsZCBub3QgcmVnaXN0ZXIgTVNJ XG4iKTsNCjMzOSAgICAgfQ0KMzQwICAgICBpZiAoaW50cl9waWNfY2xhaW1fcm9vdChkZXYsIEFD UElfSU5UUl9YUkVGLCBhcm1fZ2ljX3YzX2ludHIsIHNjLA0KMzQxICAgICAgICAgR0lDX0xBU1Rf U0dJIC0gR0lDX0ZJUlNUX1NHSSArIDEpICE9IDApIHsNCjM0MiAgICAgICAgIGVyciA9IEVOWElP Ow0KMzQzICAgICAgICAgZ290byBlcnJvcjsNCjM0NCAgICAgfQ0KV2UgZG9uJ3QgaGF2ZSBTUEkg cmFuZ2UgbWVudGlvbmVkIGluIEFDUEkgRFNEVCwgc28gSSBuZWVkIHRvIHNwZWNpZnkgaXQgbWFu dWFsbHkgaW4gdGhlIGNvZGUuDQpJdCBsb29rcyBsaWtlIE1TSSBpbnRlcnJ1cHQgaXMgbm90IGNv bWluZyB0byB0aGUgbWx4LiANCklzIHRoZXJlIGFueSBpbnRlcnJ1cHQgcmVtYXBwaW5nIGJsb2Nr ZWQgYnkgRnJlZUJTRCBrZXJuZWwgaGVyZT8NCg0KPiANCj4gRm9yIHBjaWJfbWFwX21zaSBJIGFt IHVuc3VyZSBpZiB0aGUgY3VycmVudCBjb2RlIGlzIHZhbGlkIG9uIGFybTY0LiBJZiBub3QgeW91 4oCZbGwNCj4gbmVlZCB0byBjYWxsIGludHJfbWFwX21zaS4NCj4gDQo+IEFuZHJldw0KPiANCj4g PiBPbiAyIE5vdiAyMDIyLCBhdCAyMjoyNywgU291cmFkZWVwIENoYWtyYWJhcnRpIDxzY2hha3Jh YmFydGlAbWljcm9zb2Z0LmNvbT4NCj4gd3JvdGU6DQo+ID4NCj4gPiBIaSBBbmRyZXcsDQo+ID4g VGhhbmtzIGZvciB0aGUgcmVwbHkuIFJlZ2FyZGluZyBnZW5lcmljX3BjaWVfYWNwaV9hbGxvY19t c2l4KCApLCBpdA0KPiA+IGNhbiBiZSBjYWxsZWQgaWYgdGhlIFBDSSBkZXZpY2UgaXMgY2hpbGQg b2YgdGhlIGdlbmVyaWMgcGNpYiAoDQo+IERSSVZFUl9NT0RVTEUocGNpYiwgYWNwaSwgZ2VuZXJp Y19wY2llX2FjcGlfZHJpdmVyLCAwLCAwKSAuDQo+ID4gQnV0IGlmIHRoZSBQQ0kgZGV2aWNlIGlz IGNvbW11bmljYXRpbmcgd2l0aCBhIGRpZmZlcmVudCBwY2liIGRyaXZlcg0KPiA+IChsaWtlIHZt YnVzX3BjaWIpLCBpbiB0aGF0IGNhc2UgZG8gd2UgbmVlZCB0byBpbXBsZW1lbnQgYWxsIHRoZXNl IGZ1bmN0aW9ucyBvZg0KPiBwY2lfaG9zdF9nZW5lcmljX2FjcGkuYyA/DQo+ID4NCj4gPiBPciB0 aGVyZSBhcmUgc29tZSB3YXlzIHRvIHJldXNlIHRoZW0/DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogQW5kcmV3IFR1cm5lciA8YW5kcmV3QGZ1YmFyLmdl ZWsubno+DQo+ID4+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMiwgMjAyMiA2OjU0IFBNDQo+ ID4+IFRvOiBTb3VyYWRlZXAgQ2hha3JhYmFydGkgPHNjaGFrcmFiYXJ0aUBtaWNyb3NvZnQuY29t Pg0KPiA+PiBDYzogV2FybmVyIExvc2ggPGltcEBic2RpbXAuY29tPjsgV2VpIEh1IDx3ZWhAbWlj cm9zb2Z0LmNvbT47DQo+ID4+IGZyZWVic2QtIGhhY2tlcnNARnJlZUJTRC5vcmcNCj4gPj4gU3Vi amVjdDogW0VYVEVSTkFMXSBSZTogcGNpYiBtc2l4IGFsbG9jYXRpb24gaW4gYXJtNjQNCj4gPj4N Cj4gPj4NCj4gPj4+IE9uIDIgTm92IDIwMjIsIGF0IDEyOjU2LCBTb3VyYWRlZXAgQ2hha3JhYmFy dGkNCj4gPj4+IDxzY2hha3JhYmFydGlAbWljcm9zb2Z0LmNvbT4NCj4gPj4gd3JvdGU6DQo+ID4+ Pg0KPiA+Pj4gSGksDQo+ID4+PiBJIGNhbiBzZWUgaW4geDg2IG5leHVzLmMgaGFzIGltcGxlbWVu dGVkIHBjaWJfYWxsb2NfbXNpeCB1c2luZw0KPiA+PiBuZXh1c19hbGxvY19tc2l4KCkuDQo+ID4+ PiBXaGljaCBjYWxscyBtc2l4X2FsbG9jKCkgZm9yIG1zaXggYWxsb2NhdGlvbi4NCj4gPj4+DQo+ ID4+PiBCdXQgaW4gY2FzZSBvZiBhcm02NCBJIGRvbid0IGZpbmQgc2ltaWxhciBwY2liX2FsbG9j X21zaXgNCj4gPj4+IGltcGxlbWVudGF0aW9uIGluDQo+ID4+IG5leHVzLmMgLg0KPiA+Pj4gU28s IG9uIGFybTY0IHdoYXQgaXMgY29ycmVjdCB3YXkgdG8gZ2V0IGFsbG9jYXRlIG1zaXggPw0KPiA+ Pg0KPiA+PiBGb3IgYW4gYXJtNjQgc3lzdGVtIHdpdGggQUNQSSBpdCBpcyBtb3N0IGxpa2VseSBo YW5kbGVkIGluDQo+ID4+IGdlbmVyaWNfcGNpZV9hY3BpX3JlbGVhc2VfbXNpeC4gRm9yIEZEVCBp dCBjYW4gZGVwZW5kIG9uIHdoaWNoIFBDSQ0KPiA+PiBkcml2ZXIgaXMgdXNlZC4NCj4gPj4NCj4g Pj4gSW4gZWl0aGVyIGNhc2UgaXQgd2lsbCBjYWxsIGludG8gaW50cl9yZWxlYXNlX21zaXggdGhh dCB0aGVuIGNhbGxzDQo+ID4+IGludG8gdGhlIE1TSSBjb250cm9sbGVyIHRvIGFsbG9jYXRlIHRo ZSB2ZWN0b3JzLiBGb3IgYSBHSUN2MyBkcml2ZXINCj4gPj4gaXQgd2lsbCBlaXRoZXIgYmUgZ2lj djNfaXRzX2FsbG9jX21zaXggaWYgeW91IGhhdmUgYW4gSVRTIGRldmljZSwgb3INCj4gPj4gZ2lj X3YzX2FsbG9jX21zaXggaWYgdXNpbmcgTUJJIHJhbmdlcy4NCj4gPj4NCj4gPj4gT24gQUNQSSB3 ZSBkb27igJl0IGN1cnJlbnRseSBzdXBwb3J0IE1CSSByYW5nZXMsIGFsdGhvdWdoIGl0IGxvb2tz IGxpa2UNCj4gPj4gdGhpcyBjb3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSBleGlzdGluZyBnaWN2Mm0g ZHJpdmVyLiBUaGlzIGRyaXZlcg0KPiA+PiBzaG91bGQgYWxyZWFkeSB3b3JrIGFzIGEgY2hpbGQg b2YgdGhlIEdJQ3YzLCBob3dldmVyIGl0IGFwcGVhcnMgdG8gYmUNCj4gPj4gRkRUIG9ubHksIHNv IHdpbGwgbmVlZCBzb21lIHdvcmsgdG8gYWRkIEFDUEkgc3VwcG9ydC4NCj4gPj4NCj4gPj4gQW5k cmV3DQo+ID4NCg0K