RE: [PATCH v2] virtio-blk: Add inline encryption support
Sebastian Mauritsson <[email protected]> Thu, 26 Feb 2026 11:08:15 +0000
| Newsgroups | dev.linux.lists.virtio-dev |
|---|---|
| Message-ID | <VI0P190MB2641B61ED8CC7BE0EC5E0335CE72A@VI0P190MB2641.EURP190.PROD.OUTLOOK.COM> |
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGlubGluIFpoYW5nIDxx dWljX2xpbmx6aGFuQHF1aWNpbmMuY29tPg0KPiBTZW50OiBTdW5kYXksIEZlYnJ1YXJ5IDIyLCAy MDI2IDc6MTAgQU0NCj4gVG86IFNlYmFzdGlhbiBNYXVyaXRzc29uIDxzbWFAbmFwYXRlY2guY29t PjsgdmlydGlvLWRldkBsaXN0cy5saW51eC5kZXY7DQo+IHN0ZWZhbmhhQHJlZGhhdC5jb20NCj4g Q2M6IHF1aWNfZHNoYWlraHVAcXVpY2luYy5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2Ml0g dmlydGlvLWJsazogQWRkIGlubGluZSBlbmNyeXB0aW9uIHN1cHBvcnQNCj4NCj4NCj4NCj4gT24g Mi8xOS8yMDI2IDEwOjM1IFBNLCBTZWJhc3RpYW4gTWF1cml0c3NvbiB3cm90ZToNCj4gPiBJIHVu ZGVyc3RhbmQgdGhlcmUgbWlnaHQgYmUgY29tcGF0aWJpbGl0eSBjb25zaWRlcmF0aW9ucywgYnV0 IEknbQ0KPiB3b25kZXJpbmcgdGhlIGV4YWN0IHJlYXNvbiBmb3IgbWFraW5nIENSWVBUT19BTEdf QUVTX0VDQiBhbiBvcHRpb24/DQo+IFRoaXMgZG9lcyBub3QgdXNlIGFuIElWIGFuZCBpcyB1bnN1 aXRhYmxlIGZvciBhbnl0aGluZyBvdGhlciB0aGFuIHNpbmdsZS11c2UgJg0KPiBzaW5nbGUtYmxv Y2sgZW5jcnlwdGlvbi4NCj4gV291bGQgeW91IHBsZWFzZSBzaGFyZSB5b3VyIGV4YWN0IGNvbXBh dGliaWxpdHkgY29uY2VybnM/IEkgYmVsaWV2ZSB0aGUNCj4gY2hhbmdlIGluIHRoaXMgcGF0Y2gg b25seSB3b3JrcyBmb3IgdGhhdCB0aGUgYmVja2VuZCBhbmQgdmlydGlvIGJsb2NrDQo+IGZyb250 ZW5kIG5lZ29jaWF0ZXMgVklSVElPX0JMS19GX0lDRSBmZWF0dXJlIGJpdC4gUHJldmlvdXMgaW1w bGVtZW50YXRpb24NCj4gZG9lc24ndCBoYXZlIHN1Y2ggZmVhdHVyZSBiaXQsIHNvIG5vIGltcGFj dCBvbiB0aGUgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4NCj4NCj4gV2l0aCByZXNwZWN0IHRvIENS WVBUT19BTEdfQUVTX0VDQiwgaXQncyBqdXN0IG9uZSBwb3NzaWJsZSBlbnVtIG9mDQo+IGFsZ29y aXRtcyBzdG9yYWdlIGhhcmR3YXJlIHN1cHBvcnRzLiBJViBpbiBhZGRpdGlvbmFsIG1ldGFkYXRl IGVuY3J5cHRpb24gaXMNCj4gbWFpbmx5IHVzZWQgYnkgQ0JDIG1vZGUuDQo+DQo+IEJ5IHRoZSB3 YXksIHBsZWFzZSBoZWxwIHJldmlldyB0aGUgcGF0Y2ggaW4gYmVsbG93IHRocmVhZCBzZW50IGJ5 IE9TUyBtYWlsIGlkDQo+IGR1ZSB0byBRdWFsY29tbSBpbnRlcm5hbCByZXF1aXJlbWVudCBmb3Ig dXBzdHJlYW0uDQo+DQo+IGh0dHBzOi8vbGlua3Byb3RlY3QuY3VkYXN2Yy5jb20vdXJsP2E9aHR0 cHMlM2ElMmYlMmZsb3JlLmtlcm5lbC5vcmclMmZ2aXINCj4gdGlvLWRldiUyZjIwMjYwMjEwMDgz MjA4LjQ3MjgyNC0xLQ0KPiBsaW5saW4uemhhbmclNDBvc3MucXVhbGNvbW0uY29tJTJmVCUyZiUy M3QmYz1FLDEsb3FXM3JVMUd4WF9udmNpRg0KPiBtaGZXakVUMnd0dHRERkp1ZWlfdVVWWVFiZV8w RHZCWnRHYjV3SVJDQ1RTUXhCa3J6WUMwU3R3T3I3TGFhWXJJDQo+IEdmT2luUXMxVWlMYmQzUXpO UFJldE5tdi13LCwmdHlwbz0xDQoNCk15IGNvbXBhdGliaWxpdHkgY29uY2VybnMgd2VyZSB3aXRo IHRoZSBoYXJkd2FyZSBhbGdvcml0aG0gc3VwcG9ydCAtIGlmIEFFUyBpbiBFQ0IgbW9kZSB3b3Vs ZCBiZSB0aGUgb25seSBjb21tb24gZGVub21pbmF0b3IsIHRoZW4gaXQgd291bGQgYmUgdGhlIG9u bHkgb3B0aW9uIGFuZCB0aGVyZWJ5IGhhdmUgc29tZSByZWFzb24gZm9yIGV4aXN0ZW5jZS4gSG93 ZXZlciwgSSBkbyBub3Qgc2VlIHRoaXMgdXNlIGNhc2UsIGFuZCBwcm92aWRpbmcgc3VwcG9ydCBm b3IgYSB2ZXJ5IGluc2VjdXJlIGNob2ljZSBpcyBub3QgZ29vZC4gQWxsIG90aGVyIG1vZGVzIHVz ZSBJViBvbmUgd2F5IG9yIHRoZSBvdGhlci4NCg0KSWYgY29tcGFyaW5nIHdpdGggdGhlIExpbnV4 IGJsay1jcnlwdG8gZm9yIElubGluZSBFbmNyeXB0aW9uLCBodHRwczovL2dpdGh1Yi5jb20vdG9y dmFsZHMvbGludXgvYmxvYi9tYXN0ZXIvYmxvY2svYmxrLWNyeXB0by5jLCBvbmx5IEFFU18yNTZf WFRTLCBBRVNfMTI4X0NCQ19FU1NJViwgQWRpYW50dW0gYW5kIFNNNC1YVFMgaXMgc3VwcG9ydGVk Lg0KDQpBbHNvIGNvbXBhcmUgd2l0aCB0aGUgdGhyZWFkICIgY3J5cHRvOiB2aXJ0aW86IEFkZCBl Y2IgYWVzIGFsZ28gc3VwcG9ydCIgd2hlcmUgdGhlIHBhdGNoIHdhcyBkZW5pZWQuIFRoZSB1c2Ug Y2FzZSB3YXMgcXVlc3Rpb25lZCwgYXMgd2VsbCBhcyBpdCdzIGJhY2tlbmQgc3VwcG9ydCBpbiBR ZW11IGFuZCBPUGVuU1NMLg0KDQo+DQo+ID4NCj4gPiBCZXN0IHJlZ2FyZHMsIFNlYmFzdGlhbg0K PiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IExpbmxpbiBa aGFuZyA8cXVpY19saW5semhhbkBxdWljaW5jLmNvbT4NCj4gPj4gU2VudDogRnJpZGF5LCBGZWJy dWFyeSA2LCAyMDI2IDY6MTIgUE0NCj4gPj4gVG86IHZpcnRpby1kZXZAbGlzdHMubGludXguZGV2 OyBzdGVmYW5oYUByZWRoYXQuY29tDQo+ID4+IENjOiBxdWljX2RzaGFpa2h1QHF1aWNpbmMuY29t DQo+ID4+IFN1YmplY3Q6IFtQQVRDSCB2Ml0gdmlydGlvLWJsazogQWRkIGlubGluZSBlbmNyeXB0 aW9uIHN1cHBvcnQNCj4gPj4NCj4gPj4gRnJvbTogbGlubHpoYW4gPHF1aWNfbGlubHpoYW5AcXVp Y2luYy5jb20+DQo+ID4+DQo+ID4+IElubGluZSBlbmNyeXB0aW9uIG9uIHZpcnRpbyBibG9jayBj YW4gb25seSBiZSBzdXBwb3J0ZWQgd2hlbiB0aGUgbmV3DQo+ID4+IGZlYXR1cmUgYml0IFZJUlRJ T19CTEtfRl9JQ0UgaXMgbmVnb3RpYXRlZC4NCj4gPj4NCj4gPj4gRXh0ZW5kIHN0cnVjdCB2aXJ0 aW9fYmxrX2NvbmZpZyBhbmQgc3RydWN0IHZpcnRpb19ibGtfcmVxLCBzbyB0aGF0DQo+ID4+IGNy eXB0byBjYXBhYmlsaXRpZXMgY2FuIGJlIGdvdCBpbiB0aGUgZnJvbnRlbmQgYW5kIGVuY3J5cHRp b24NCj4gPj4gbWV0YWRhdGEgY2FuIGJlIHNlbnQgdG8gdGhlIGJhY2tlbmQsIHRvZ2V0aGVyIHdp dGggZWFjaCBJL08gdHJhbnNhY3Rpb24uDQo+ID4+DQo+ID4+IEFib3V0IHRoZSBpbmxpbmUgZW5j cnlwdGlvbiBvbiBVRlMgb3IgZU1NQyBzdG9yYWdlLCBwbGVhc2UgcmVmZXIgdG8NCj4gPj4gdGhl IExpbnV4IGlubGluZSBlbmNyeXB0aW9uIGRvY3VtZW50YXRpb246DQo+ID4+IGh0dHBzOi8vbGlu a3Byb3RlY3QuY3VkYXN2Yy5jb20vdXJsP2E9aHR0cHMlM2ElMmYlMmZnaXQua2VybmVsLm9yZyUy Zg0KPiA+PiBwdWINCj4gPj4NCj4gJTJmc2NtJTJmbGludXglMmZrZXJuZWwlMmZnaXQlMmZ0b3J2 YWxkcyUyZmxpbnV4LmdpdCUyZnRyZWUlMmZEb2N1bWVuDQo+ID4+IHRhdGlvbiUyZmJsb2NrJTJm aW5saW5lLQ0KPiBlbmNyeXB0aW9uLnJzdCZjPUUsMSxuaEwzek14WXd4dUZQNFFROFNMaExqei0N Cj4gPj4gTVl3UTNSR0QtUFlYVTcxdWhDLU9CbnhEZWFlZlZ5RFlRSDFBMEt2WDcwVEhYZmwtU1dq ai0NCj4gPj4gSmNEbnRHR2llM2JTVE5BcmkwSDRfMEN0Q3FVM2t5Q1dSb0RnMV9OJnR5cG89MQ0K PiA+Pg0KPiA+PiBGaXhlczogaHR0cHM6Ly9naXRodWIuY29tL29hc2lzLXRjcy92aXJ0aW8tc3Bl Yy9pc3N1ZXMvMjM4DQo+ID4+IFJldmlld2VkLWJ5OiBTdGVmYW4gSGFqbm9jemkgPHN0ZWZhbmhh QHJlZGhhdC5jb20+DQo+ID4+IFNpZ25lZC1vZmYtYnk6IGxpbmx6aGFuIDxxdWljX2xpbmx6aGFu QHF1aWNpbmMuY29tPg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBMaW5saW4gWmhhbmcgPGxpbmxpbi56 aGFuZ0Bvc3MucXVhbGNvbW0uY29tPg0KPiA+PiAtLS0NCj4gPj4NCj4gPj4gY2hhbmdlcyBmcm9t IHYyOg0KPiA+PiAgLSBBZGQgaW5saW5lIGVuY3J5cHRpb24gbGluayBpbiBjb21taXQgbWVzc2Fn ZSBmb3IgYSBiZXR0ZXINCj4gPj4gICAgYmFja2dyb25kIGRlc2NyeXB0aW9uDQo+ID4+ICAtIEFk ZCBzdWZmaWNpZW50IGRlc2NyeXB0aW9uIGZvciB0aGUgZmllbGRzIG9mIGNyeXB0bw0KPiA+PiAg ICBjYXBhYmlsaXR5DQo+ID4+ICAtIERlbGV0ZSBjcnlwdG8gY2FwYWJpbGl0eSBpbiBjb25maWd1 cmF0aW9uIGxheW91dCwgaW5zdGVhZA0KPiA+PiAgICBhZGQgYSBuZXcgcmVxdWVzdCBjb21tYW5k IHRvIGdldCBpdA0KPiA+PiAgLSBDb3JyZWN0IHRoZSB0ZXJtaW5vbG9neSBpbiBub24tbm9ybWF0 aXZlIGFuZCBub3JtYXRpdmUNCj4gPj4gICAgc2VjdGlvbnMNCj4gPj4gIC0gQ29ycmVjdCB0aGUg bWFpbCBmb3Igb3BlbiBzb3VyY2UgdXBzdHJlYW0NCj4gPj4gLS0tDQo+ID4+DQo+ID4+ICBkZXZp Y2UtdHlwZXMvYmxrL2Rlc2NyaXB0aW9uLnRleCB8IDExMA0KPiA+PiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKystDQo+ID4+ICAxIGZpbGUgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9kZXZpY2UtdHlwZXMvYmxr L2Rlc2NyaXB0aW9uLnRleCBiL2RldmljZS0NCj4gPj4gdHlwZXMvYmxrL2Rlc2NyaXB0aW9uLnRl eCBpbmRleCAyNzEyYWRhLi42MGY0NmFmIDEwMDY0NA0KPiA+PiAtLS0gYS9kZXZpY2UtdHlwZXMv YmxrL2Rlc2NyaXB0aW9uLnRleA0KPiA+PiArKysgYi9kZXZpY2UtdHlwZXMvYmxrL2Rlc2NyaXB0 aW9uLnRleA0KPiA+PiBAQCAtNjYsNiArNjYsMTEgQEAgXHN1YnNlY3Rpb257RmVhdHVyZSBiaXRz fVxsYWJlbHtzZWM6RGV2aWNlIFR5cGVzIC8NCj4gPj4gQmxvY2sgRGV2aWNlIC8gRmVhdHVyZSBi aXRzfQ0KPiA+PiAgICAgICAoWk5TKS4gRm9yIGJyZXZpdHksIHRoZXNlIHN0YW5kYXJkIGRvY3Vt ZW50cyBhcmUgcmVmZXJyZWQgYXMNCj4gPj4gIlpCRCBzdGFuZGFyZHMiDQo+ID4+ICAgICAgIGZy b20gdGhpcyBwb2ludCBvbiBpbiB0aGUgdGV4dC4NCj4gPj4NCj4gPj4gK1xpdGVtW1ZJUlRJT19C TEtfRl9JQ0UoMjIpXSBJbmxpbmUgQ3J5cHRvIEV4dGVuc2lvbnMgYXJlIHN1cHBvcnRlZC4NCj4g Pj4gK09ubHkNCj4gPj4gd2hlbiB0aGlzDQo+ID4+ICsgICAgIGZlYXR1cmUgYml0IGlzIG5lZ290 aWF0ZWQsIHRoZSBkZXZpY2UgbmVlZCBleHBvc2UgY3J5cHRvIGNoYXJhY3RlcmlzdGljcw0KPiBp bg0KPiA+PiArICAgICBjb25maWd1cmF0aW9uIHNwYWNlIGFuZCB0aGUgZHJpdmVyIG5lZWQgcHJv dmlkZSBhbiBleHRlbmRlZA0KPiA+PiArIHJlcXVlc3QNCj4gPj4gaGVhZGVyDQo+ID4+ICsgICAg IGNvbnRhaW5pbmcgYSBjcnlwdG8gcGF5bG9hZCBmb3IgYmxvY2sgSS9PLg0KPiA+PiArDQo+ID4+ ICBcZW5ke2Rlc2NyaXB0aW9ufQ0KPiA+Pg0KPiA+PiAgXHN1YnN1YnNlY3Rpb257TGVnYWN5IElu dGVyZmFjZTogRmVhdHVyZSBiaXRzfVxsYWJlbHtzZWM6RGV2aWNlDQo+ID4+IFR5cGVzIC8gQmxv Y2sgRGV2aWNlIC8gRmVhdHVyZSBiaXRzIC8gTGVnYWN5IEludGVyZmFjZTogRmVhdHVyZSBiaXRz fQ0KPiA+PiBAQCAtMTI4LDYgKzEzMywxMCBAQCBcc3Vic2VjdGlvbntEZXZpY2UgY29uZmlndXJh dGlvbg0KPiA+PiBsYXlvdXR9XGxhYmVse3NlYzpEZXZpY2UgVHlwZXMgLyBCbG9jayBEZXZpY2Ug Lw0KPiA+PiAgICAgICAgICAgICAgICAgIHU4IG1vZGVsOw0KPiA+PiAgICAgICAgICAgICAgICAg IHU4IHVudXNlZDJbM107DQo+ID4+ICAgICAgICAgIH0gem9uZWQ7DQo+ID4+ICsgICAgICAgIHN0 cnVjdCB2aXJ0aW9fYmxrX2NyeXB0b19jaGFyYWN0ZXJpc3RpY3Mgew0KPiA+PiArICAgICAgICAg ICAgICAgIF9fdmlydGlvMTYgc2xvdF9pbmZvOw0KPiA+PiArICAgICAgICAgICAgICAgIF9fdmly dGlvMTYgcmVzZXJ2ZWQ7DQo+ID4+ICsgICAgICAgIH0gY3J5cHRvOw0KPiA+PiAgfTsNCj4gPj4g IFxlbmR7bHN0bGlzdGluZ30NCj4gPj4NCj4gPj4gQEAgLTIxNSw2ICsyMjQsMTggQEAgXHN1YnNl Y3Rpb257RGV2aWNlIGNvbmZpZ3VyYXRpb24NCj4gPj4gbGF5b3V0fVxsYWJlbHtzZWM6RGV2aWNl IFR5cGVzIC8gQmxvY2sgRGV2aWNlIC8gIHRlcm1pbmF0ZWQgYnkgdGhlDQo+ID4+IGRldmljZSB3 aXRoIGEgInpvbmUgcmVzb3VyY2VzIGV4Y2VlZGVkIiBlcnJvciBhcyBkZWZpbmVkIGZvciAgc3Bl Y2lmaWMNCj4gY29tbWFuZHMgbGF0ZXIuDQo+ID4+DQo+ID4+ICtJZiB0aGUgVklSVElPX0JMS19G X0lDRSBmZWF0dXJlIGlzIG5lZ290aWF0ZWQsIHRoZW4gaW4NCj4gPj4gK1xmaWVsZHt2aXJ0aW9f YmxrX2NyeXB0b19jaGFyYWN0ZXJpc3RpY3N9LA0KPiA+PiArXGJlZ2lue2l0ZW1pemV9DQo+ID4+ ICtcaXRlbSBcZmllbGR7c2xvdF9pbmZvfSB2YWx1ZSBwYWNrcyB0d28gOC1iaXRzIHZhbHVlcyB0 byByZWR1Y2UgdGhlDQo+IG51bWJlciBvZg0KPiA+PiArICAgIENvbmZpZ3VyYXRpb24gU3BhY2Ug cmVhZHMuDQo+ID4+ICsgICAgXGJlZ2lue2l0ZW1pemV9DQo+ID4+ICsgICAgICAgIFxpdGVtIEJp dHN+XFsxNTo4XSAoXGVtcGh7bWF4XF9zbG90c30pOiB0aGUgbWF4aW11bSBudW1iZXINCj4gPj4g K29mDQo+ID4+IHN1cHBvcnRlZA0KPiA+PiArICAgICAgICAgICAgY3J5cHRvIGtleSBzbG90cy4N Cj4gPj4gKyAgICAgICAgXGl0ZW0gQml0c35cWzc6MF0gKFxlbXBoe3Nsb3RcX29mZnNldH0pOiBh biBvZmZzZXQgYXBwbGllZA0KPiA+PiArIHRvIHNsb3QNCj4gPj4gbnVtYmVyaW5nLg0KPiA+PiAr ICAgIFxlbmR7aXRlbWl6ZX0NCj4gPj4gK1xlbmR7aXRlbWl6ZX0NCj4gPj4gKw0KPiA+PiAgXHN1 YnN1YnNlY3Rpb257TGVnYWN5IEludGVyZmFjZTogRGV2aWNlIGNvbmZpZ3VyYXRpb24NCj4gPj4g bGF5b3V0fVxsYWJlbHtzZWM6RGV2aWNlIFR5cGVzIC8gQmxvY2sgRGV2aWNlIC8gRGV2aWNlIGNv bmZpZ3VyYXRpb24NCj4gPj4gbGF5b3V0IC8gTGVnYWN5IEludGVyZmFjZTogRGV2aWNlIGNvbmZp Z3VyYXRpb24gbGF5b3V0fSAgV2hlbiB1c2luZw0KPiA+PiB0aGUgbGVnYWN5IGludGVyZmFjZSwg dHJhbnNpdGlvbmFsIGRldmljZXMgYW5kIGRyaXZlcnMgIE1VU1QgZm9ybWF0DQo+ID4+IHRoZSBm aWVsZHMgaW4gc3RydWN0IHZpcnRpb19ibGtfY29uZmlnIEBAIC0yNzgsNiArMjk5LDEwIEBADQo+ ID4+IFxzdWJzZWN0aW9ue0RldmljZSBJbml0aWFsaXphdGlvbn1cbGFiZWx7c2VjOkRldmljZSBU eXBlcyAvIEJsb2NrIERldmljZSAvDQo+IERldmljDQo+ID4+ICAgICAgXGZpZWxke3pvbmVkfSBj YW4gYmUgcmVhZCBieSB0aGUgZHJpdmVyIHRvIGRldGVybWluZSB0aGUgem9uZQ0KPiA+PiAgICAg IGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgZGV2aWNlLiBBbGwgXGZpZWxke3pvbmVkfSBmaWVsZHMg YXJlIHJlYWQtb25seS4NCj4gPj4NCj4gPj4gK1xpdGVtIElmIHRoZSBWSVJUSU9fQkxLX0ZfSUNF IGZlYXR1cmUgaXMgbmVnb3RpYXRlZCwgdGhlIGZpZWxkcyBpbg0KPiA+PiArICAgIFxmaWVsZHtj cnlwdG99IGNhbiBiZSByZWFkIGJ5IHRoZSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHRoZSBpbmxpbmUg Y3J5cHRvDQo+ID4+ICsgICAgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBkZXZpY2UuIEFsbCBcZmll bGR7Y3J5cHRvfSBmaWVsZHMgYXJlIHJlYWQtb25seS4NCj4gPj4gKw0KPiA+PiAgXGVuZHtlbnVt ZXJhdGV9DQo+ID4+DQo+ID4+ICBcZHJpdmVybm9ybWF0aXZle1xzdWJzdWJzZWN0aW9ufXtEZXZp Y2UgSW5pdGlhbGl6YXRpb259e0RldmljZSBUeXBlcw0KPiA+PiAvIEJsb2NrIERldmljZSAvIERl dmljZSBJbml0aWFsaXphdGlvbn0gQEAgLTMxNyw2ICszNDIsOSBAQA0KPiA+PiBcc3Vic2VjdGlv bntEZXZpY2UgSW5pdGlhbGl6YXRpb259XGxhYmVse3NlYzpEZXZpY2UgVHlwZXMgLyBCbG9jayBE ZXZpY2UgLw0KPiBEZXZpYw0KPiA+PiAgICAgIGRyaXZlciBTSE9VTEQgaWdub3JlIGFsbCBvdGhl ciBmaWVsZHMgaW4gXGZpZWxke3pvbmVkfS4NCj4gPj4gIFxlbmR7aXRlbWl6ZX0NCj4gPj4NCj4g Pj4gK0lmIHRoZSBWSVJUSU9fQkxLX0ZfSUNFIGZlYXR1cmUgaXMgbmVnb3RpYXRlZCwgdGhlbiB0 aGUgZHJpdmVyIE1VU1QNCj4gPj4gdmFsaWRhdGUNCj4gPj4gKyAgICB0aGUgbWF4X3Nsb3RzIGlu IFxmaWVsZHtzbG90X2luZm99IGJlZm9yZSB0aGUgc2xvdCB1c2FnZS4NCj4gPj4gKw0KPiA+PiAg XGRldmljZW5vcm1hdGl2ZXtcc3Vic3Vic2VjdGlvbn17RGV2aWNlIEluaXRpYWxpemF0aW9ufXtE ZXZpY2UgVHlwZXMNCj4gPj4gLyBCbG9jayBEZXZpY2UgLyBEZXZpY2UgSW5pdGlhbGl6YXRpb259 DQo+ID4+DQo+ID4+ICBEZXZpY2VzIFNIT1VMRCBhbHdheXMgb2ZmZXIgVklSVElPX0JMS19GX0ZM VVNILCBhbmQgTVVTVCBvZmZlciBpdA0KPiBAQA0KPiA+PiAtDQo+ID4+IDQwMiw2ICs0MzAsMTMg QEAgXHN1YnNlY3Rpb257RGV2aWNlIEluaXRpYWxpemF0aW9ufVxsYWJlbHtzZWM6RGV2aWNlDQo+ ID4+IFR5cGVzIC8gQmxvY2sgRGV2aWNlIC8gRGV2aWMgIFxpdGVtIHRoZSBkZXZpY2UgTVVTVCBp bml0aWFsaXplDQo+ID4+IHBhZGRpbmcgYnl0ZXMgXGZpZWxke3VudXNlZDJ9IHRvIDAuDQo+ID4+ ICBcZW5ke2l0ZW1pemV9DQo+ID4+DQo+ID4+ICtJZiB0aGUgVklSVElPX0JMS19GX0lDRSBmZWF0 dXJlIGlzIG5lZ290aWF0ZWQsIHRoZW4gdGhlIGZpZWxkcyBpbg0KPiA+PiArXGZpZWxke2NyeXB0 b30gc3RydWN0IGluIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlIE1VU1QgYmUgc2V0IGJ5IHRoZQ0K PiBkZXZpY2UuDQo+ID4+ICtcYmVnaW57aXRlbWl6ZX0NCj4gPj4gK1xpdGVtIHRoZSBcZmllbGR7 c2xvdF9pbmZvfSBmaWVsZCBvZiBcZmllbGR7Y3J5cHRvfSBNVVNUIGJlIHNldCBieQ0KPiA+PiAr dGhlIGRldmljZSB0bw0KPiA+PiBhDQo+ID4+ICsgICAgbWF4X3Nsb3RzIGluIHRoZSBoaWdoZXIg OCBiaXRzIGFuZCBzbG90X29mZnNldCBpbiB0aGUgbG93ZXIgOCBiaXRzLg0KPiA+PiArXGVuZHtp dGVtaXplfQ0KPiA+PiArDQo+ID4+ICBcc3Vic3Vic2VjdGlvbntMZWdhY3kgSW50ZXJmYWNlOiBE ZXZpY2UNCj4gPj4gSW5pdGlhbGl6YXRpb259XGxhYmVse3NlYzpEZXZpY2UgVHlwZXMgLyBCbG9j ayBEZXZpY2UgLyBEZXZpY2UNCj4gPj4gSW5pdGlhbGl6YXRpb24gLyBMZWdhY3kgSW50ZXJmYWNl OiBEZXZpY2UgSW5pdGlhbGl6YXRpb259DQo+ID4+DQo+ID4+ICBCZWNhdXNlIGxlZ2FjeSBkZXZp Y2VzIGRvIG5vdCBoYXZlIEZFQVRVUkVTX09LLCB0cmFuc2l0aW9uYWwgZGV2aWNlcw0KPiA+PiBA QCAtDQo+ID4+IDQzNiw2ICs0NzEsMTMgQEAgXHN1YnNlY3Rpb257RGV2aWNlIE9wZXJhdGlvbn1c bGFiZWx7c2VjOkRldmljZSBUeXBlcw0KPiA+PiAvIEJsb2NrIERldmljZSAvIERldmljZSBPcGUN Cj4gPj4gICAgICAgICAgbGUzMiB0eXBlOw0KPiA+PiAgICAgICAgICBsZTMyIHJlc2VydmVkOw0K PiA+PiAgICAgICAgICBsZTY0IHNlY3RvcjsNCj4gPj4gKyAgICAgICAgc3RydWN0IHZpcnRpb19i bGtfY3J5cHRvX3BheWxvYWQgew0KPiA+PiArICAgICAgICAgICAgdTggc2xvdDsNCj4gPj4gKyAg ICAgICAgICAgIHU4IGFjdGl2YXRlOw0KPiA+PiArICAgICAgICAgICAgbGUxNiByZXNlcnZlZDE7 DQo+ID4+ICsgICAgICAgICAgICBsZTMyIHJlc2VydmVkMjsNCj4gPj4gKyAgICAgICAgICAgIGxl NjQgZGF0YV91bml0X251bTsNCj4gPj4gKyAgICAgICAgfSBwYXlsb2FkOw0KPiA+PiAgICAgICAg ICB1OCBkYXRhW107DQo+ID4+ICAgICAgICAgIHU4IHN0YXR1czsNCj4gPj4gIH07DQo+ID4+IEBA IC00NDUsOCArNDg3LDkgQEAgXHN1YnNlY3Rpb257RGV2aWNlIE9wZXJhdGlvbn1cbGFiZWx7c2Vj OkRldmljZQ0KPiA+PiBUeXBlcyAvIEJsb2NrIERldmljZSAvIERldmljZSBPcGUgIChWSVJUSU9f QkxLX1RfT1VUKSwgYSBkaXNjYXJkDQo+ID4+IChWSVJUSU9fQkxLX1RfRElTQ0FSRCksIGEgd3Jp dGUgemVyb2VzICAoVklSVElPX0JMS19UX1dSSVRFX1pFUk9FUyksDQo+ID4+IGEgZmx1c2ggKFZJ UlRJT19CTEtfVF9GTFVTSCksIGEgZ2V0IGRldmljZSBJRCAgc3RyaW5nIGNvbW1hbmQNCj4gPj4g KFZJUlRJT19CTEtfVF9HRVRfSUQpLCBhIHNlY3VyZSBlcmFzZSAtKFZJUlRJT19CTEtfVF9TRUNV UkVfRVJBU0UpLA0KPiA+PiBvciBhIGdldCBkZXZpY2UgbGlmZXRpbWUgY29tbWFuZCAtKFZJUlRJ T19CTEtfVF9HRVRfTElGRVRJTUUpLg0KPiA+PiArKFZJUlRJT19CTEtfVF9TRUNVUkVfRVJBU0Up LCBhIGdldCBkZXZpY2UgbGlmZXRpbWUgY29tbWFuZA0KPiA+PiArKFZJUlRJT19CTEtfVF9HRVRf TElGRVRJTUUpLCBvciBhIGdldCBkZXZpY2UgY3J5cHRvIGNhcGFiaWxpdGllcw0KPiA+PiArY29t bWFuZCAoVklSVElPX0JMS19UX0dFVF9DUllQVE9fQ0FQQUJJTElUSUVTKS4NCj4gPj4NCj4gPj4g IFxiZWdpbntsc3RsaXN0aW5nfQ0KPiA+PiAgI2RlZmluZSBWSVJUSU9fQkxLX1RfSU4gICAgICAg ICAgIDANCj4gPj4gQEAgLTQ1NywxMiArNTAwLDI3IEBAIFxzdWJzZWN0aW9ue0RldmljZSBPcGVy YXRpb259XGxhYmVse3NlYzpEZXZpY2UNCj4gPj4gVHlwZXMgLyBCbG9jayBEZXZpY2UgLyBEZXZp Y2UgT3BlDQo+ID4+ICAjZGVmaW5lIFZJUlRJT19CTEtfVF9ESVNDQVJEICAgICAgMTENCj4gPj4g ICNkZWZpbmUgVklSVElPX0JMS19UX1dSSVRFX1pFUk9FUyAxMw0KPiA+PiAgI2RlZmluZSBWSVJU SU9fQkxLX1RfU0VDVVJFX0VSQVNFICAgMTQNCj4gPj4gKyNkZWZpbmUgVklSVElPX0JMS19UX0dF VF9DUllQVE9fQ0FQQUJJTElUSUVTICAgMjcNCj4gPj4gIFxlbmR7bHN0bGlzdGluZ30NCj4gPj4N Cj4gPj4gIFRoZSBcZmllbGR7c2VjdG9yfSBudW1iZXIgaW5kaWNhdGVzIHRoZSBvZmZzZXQgKG11 bHRpcGxpZWQgYnkgNTEyKQ0KPiA+PiB3aGVyZSAgdGhlIHJlYWQgb3Igd3JpdGUgaXMgdG8gb2Nj dXIuIFRoaXMgZmllbGQgaXMgdW51c2VkIGFuZCBzZXQgdG8NCj4gPj4gMCBmb3IgIGNvbW1hbmRz IG90aGVyIHRoYW4gcmVhZCwgd3JpdGUgYW5kIHNvbWUgem9uZSBvcGVyYXRpb25zLg0KPiA+Pg0K PiA+PiArVGhlIFxmaWVsZHtwYXlsb2FkfSBjb25zaXN0cyBvZiB0aGUgZW5jcnlwdGlvbiBpbmZv cm1hdGlvbiBmb3INCj4gPj4gK2N1cnJlbnQgcmVxdWVzdC4gSXQgaXMgb25seSBwcmVzZW50IHdo ZW4gdGhlIFZJUlRJT19CTEtfRl9JQ0UNCj4gPj4gK2ZlYXR1cmUgaXMgbmVnb3RpYXRlZCBhbmQg XGZpZWxke3R5cGV9IGlzIFZJUlRJT19CTEtfVF9JTiwNCj4gPj4gK1ZJUlRJT19CTEtfVF9PVVQg b3INCj4gPj4gVklSVElPX0JMS19UX0ZMVVNILg0KPiA+PiArXGJlZ2lue2l0ZW1pemV9DQo+ID4+ ICtcaXRlbSBUaGUgXGZpZWxke3Nsb3R9IGZpZWxkIGluIFxmaWVsZHtwYXlsb2FkfSBpbmRpY2F0 ZXMgdGhlIElDRQ0KPiA+PiArICAoSW5saW5lIENyeXB0byBFbmNyeXB0aW9uKSBzbG90IGluZGV4 IHdoZXJlIHRoZSBrZXkgcmVzaWRlcy4NCj4gPj4gKw0KPiA+PiArXGl0ZW0gVGhlIFxmaWVsZHth Y3RpdmF0ZX0gZmllbGQgaW4gXGZpZWxke3BheWxvYWR9IGltcGxpZXMgdGhpcyBpcw0KPiA+PiAr YQ0KPiA+PiArICBpbmxpbmUgZW5jcnlwdGlvbiByZXF1ZXN0Lg0KPiA+PiArDQo+ID4+ICtcaXRl bSBUaGUgXGZpZWxke2RhdGFfdW5pdF9udW19IGZpZWxkIGluIFxmaWVsZHtwYXlsb2FkfSBpbmRp Y2F0ZXMNCj4gPj4gK3RoZQ0KPiA+PiArICBzdGFydGluZyBibG9jayBvZiB0aGUgcmVxdWVzdC4N Cj4gPj4gK1xlbmR7aXRlbWl6ZX0NCj4gPj4gKw0KPiA+PiAgVklSVElPX0JMS19UX0lOIHJlcXVl c3RzIHBvcHVsYXRlIFxmaWVsZHtkYXRhfSB3aXRoIHRoZSBjb250ZW50cyBvZg0KPiA+PiBzZWN0 b3JzIHJlYWQgZnJvbSB0aGUgYmxvY2sgZGV2aWNlIChpbiBtdWx0aXBsZXMgb2YgNTEyIGJ5dGVz KS4NCj4gPj4gVklSVElPX0JMS19UX09VVCByZXF1ZXN0cyB3cml0ZSB0aGUgY29udGVudHMgb2Yg XGZpZWxke2RhdGF9IHRvIHRoZQ0KPiA+PiBibG9jayBkZXZpY2UgKGluIG11bHRpcGxlcyBAQCAt NTMwLDYgKzU4OCw0NyBAQCBcc3Vic2VjdGlvbntEZXZpY2UNCj4gPj4gT3BlcmF0aW9ufVxsYWJl bHtzZWM6RGV2aWNlIFR5cGVzIC8gQmxvY2sgRGV2aWNlIC8gRGV2aWNlIE9wZSAgVGhlDQo+ID4+ IFxmaWVsZHtkZXZpY2VfbGlmZXRpbWVfZXN0X3R5cF9ifSByZWZlcnMgdG8gd2VhciBvZiBNTEMg Y2VsbHMgYW5kIGlzDQo+ID4+IHByb3ZpZGVkICB3aXRoIHRoZSBzYW1lIHNlbWFudGljcyBhcyBc ZmllbGR7ZGV2aWNlX2xpZmV0aW1lX2VzdF90eXBfYX0uDQo+ID4+DQo+ID4+ICtWSVJUSU9fQkxL X1RfR0VUX0NSWVBUT19DQVBBQklMSVRJRVMgcmVxdWVzdHMgZmV0Y2ggdGhlIHN0b3JhZ2UNCj4g Pj4gK2hhcmR3YXJlIGNyeXB0byBjYXBhYmlsaXRpZXMgaW50byBcZmllbGR7ZGF0YX0uIEFuZCB0 aGUgXGZpZWxke2RhdGF9DQo+ID4+ICtpcyBvZiB0aGUgZm9ybQ0KPiA+PiArDQo+ID4+ICtcYmVn aW57bHN0bGlzdGluZ30NCj4gPj4gK3N0cnVjdCB2aXJ0aW9fYmxrX2NyeXB0b19jYXBzIHsNCj4g Pj4gKyAgdTggc2l6ZTsNCj4gPj4gKyAgbGUzMiBjcnlwdG9fY2FwYWJpbGl0aWVzW107DQo+ID4+ ICt9Ow0KPiA+PiArXGVuZHtsc3RsaXN0aW5nfQ0KPiA+PiArDQo+ID4+ICtUaGUgXGZpZWxke3Np emV9IHNwZWNpZmllcyB0aGUgc2l6ZSBvZiBhcnJheSBcZmllbGR7Y3J5cHRvX2NhcGFiaWxpdGll c30uDQo+ID4+ICtUaGUgXGZpZWxke2NyeXB0b19jYXBhYmlsaXRpZXN9IGluZGljYXRlcyB0aGUg Y3J5cHRvIGNhcGFiaWxpdGllcw0KPiA+PiArc3VwcG9ydGVkIGJ5IHRoZSBoYXJkd2FyZSBzdG9y YWdlIGZvciBpbmxpbmUgZW5jcnlwdGlvbi4NCj4gPj4gKw0KPiA+PiArQSBjcnlwdG8gY2FwYWJp bGl0eSBwYWNrcyBmb3VyIDgtYml0cyB2YWx1ZXM6DQo+ID4+ICtcYmVnaW57aXRlbWl6ZX0NCj4g Pj4gKyAgICBcaXRlbSBCaXRzflxbMzE6MjRdOiBjcnlwdG8gYWxnb3JpdGhtIGlkZW50aWZpZXJz Lg0KPiA+PiArICAgIFRoZSBkZXZpY2Ugc3VwcG9ydHMgcmVwb3J0aW5nIGFuZCBuZWdvdGlhdGlu ZyBjcnlwdG9ncmFwaGljDQo+IGFsZ29yaXRobXMNCj4gPj4gKyAgICB1c2luZyB0aGUgZm9sbG93 aW5nIGFsZ29yaXRobSBpZGVudGlmaWVyczoNCj4gPj4gKyAgICBcYmVnaW57bHN0bGlzdGluZ30N Cj4gPj4gKyAgICAgICAgQ1JZUFRPX0FMR19BRVNfWFRTICAgICAgICAgICAgICA9IDB4MA0KPiA+ PiArICAgICAgICBDUllQVE9fQUxHX0JJVExPQ0tFUl9BRVNfQ0JDICAgID0gMHgxDQo+ID4+ICsg ICAgICAgIENSWVBUT19BTEdfQUVTX0VDQiAgICAgICAgICAgICAgPSAweDINCj4gPj4gKyAgICAg ICAgQ1JZUFRPX0FMR19FU1NJVl9BRVNfQ0JDICAgICAgICA9IDB4Mw0KPiA+PiArICAgIFxlbmR7 bHN0bGlzdGluZ30NCj4gPj4gKyAgICBUaGVzZSBpZGVudGlmaWVycyBhYnN0cmFjdCB0aGUgdW5k ZXJseWluZyBoYXJkd2FyZSBjcnlwdG8NCj4gPj4gaW1wbGVtZW50YXRpb24NCj4gPj4gKyAgICBh bmQgZG9lcyBub3QgYXNzdW1lIGFueSBvcGVyYXRpbmfigJFzeXN0ZW3igJFzcGVjaWZpYyBkYXRh IHN0cnVjdHVyZXMgb3INCj4gPj4gKyAgICBjb25zdGFudHMuDQo+ID4+ICsgICAgXGl0ZW0gQml0 c35cWzIzOjE2XTogbWFzayBvZiBkYXRhIHVuaXQgc2l6ZS4gV2hlbiBiaXQgaiBpbiB0aGlzIGZp ZWxkDQo+ID4+ICsgICAgKGo9Ny4uLi4uLjApIGlzIHNldCwgYSBkYXRhIHVuaXQgc2l6ZSBvZiA1 MTIqMl5qIGJ5dGVzIGlzIHNlbGVjdGVkLg0KPiA+PiArICAgIFxpdGVtIEJpdHN+XFsxNTo4XTog Y3J5cHRvIGtleSBzaXplIGlkZW50aWZpZXJzLg0KPiA+PiArICAgIFxiZWdpbntsc3RsaXN0aW5n fQ0KPiA+PiArICAgICAgICBDUllQVE9fS0VZX1NJWkVfSU5WQUxJRCAgICAgPSAweDANCj4gPj4g KyAgICAgICAgQ1JZUFRPX0tFWV9TSVpFXzEyOF9CSVRTICAgID0gMHgxDQo+ID4+ICsgICAgICAg IENSWVBUT19LRVlfU0laRV8xOTJfQklUUyAgICA9IDB4Mg0KPiA+PiArICAgICAgICBDUllQVE9f S0VZX1NJWkVfMjU2X0JJVFMgICAgPSAweDMNCj4gPj4gKyAgICAgICAgQ1JZUFRPX0tFWV9TSVpF XzUxMl9CSVRTICAgID0gMHg0DQo+ID4+ICsgICAgXGVuZHtsc3RsaXN0aW5nfQ0KPiA+PiArICAg IFxpdGVtIEJpdHN+XFs3OjBdOiB1bnVzZWQuDQo+ID4+ICtcZW5ke2l0ZW1pemV9DQo+ID4+ICsN Cj4gPj4gIFRoZSBmaW5hbCBcZmllbGR7c3RhdHVzfSBieXRlIGlzIHdyaXR0ZW4gYnkgdGhlIGRl dmljZTogZWl0aGVyDQo+ID4+IFZJUlRJT19CTEtfU19PSyBmb3Igc3VjY2VzcywgVklSVElPX0JM S19TX0lPRVJSIGZvciBkZXZpY2Ugb3IgZHJpdmVyDQo+ID4+IGVycm9yIG9yIFZJUlRJT19CTEtf U19VTlNVUFAgZm9yIGEgcmVxdWVzdCB1bnN1cHBvcnRlZCBieSBkZXZpY2U6DQo+ID4+IEBAIC05 MTIsNiArMTAxMSwxMyBAQCBcc3Vic2VjdGlvbntEZXZpY2UgT3BlcmF0aW9ufVxsYWJlbHtzZWM6 RGV2aWNlDQo+ID4+IFR5cGVzIC8gQmxvY2sgRGV2aWNlIC8gRGV2aWNlIE9wZSAgc3VjY2Vzc2Z1 bGx5LCBmYWlsZWQsIG9yIHdlcmUNCj4gPj4gcHJvY2Vzc2VkIGJ5IHRoZSBkZXZpY2UgYXQgYWxs IGlmIHRoZSByZXF1ZXN0ICBmYWlsZWQgd2l0aA0KPiBWSVJUSU9fQkxLX1NfSU9FUlIuDQo+ID4+ DQo+ID4+ICtUaGUgbGVuZ3RoIG9mIFxmaWVsZHtkYXRhfSBNVVNUIGJlIGEgbXVsdGlwbGUgb2Yg NCBieXRlcyBwbHVzIDEgZm9yDQo+ID4+ICtWSVJUSU9fQkxLX1RfR0VUX0NSWVBUT19DQVBBQklM SVRJRVMgcmVxdWVzdHMuDQo+ID4+ICsNCj4gPj4gK0EgZHJpdmVyIE1VU1Qgc2V0IFxmaWVsZHth Y3RpdmF0ZX0gdG8gMSBmb3INCj4gPj4gVklSVElPX0JMS19UX0lOLFZJUlRJT19CTEtfVF9PVVQs DQo+ID4+ICsgICAgYW5kIFZJUlRJT19CTEtfVF9GTFVTSCByZXF1ZXN0cyB0aGF0IHJlcXVpcmUg aW5saW5lIGVuY3J5cHRpb24uDQo+ID4+ICsgRm9yDQo+ID4+IG90aGVyDQo+ID4+ICsgICAgcmVx dWVzdCB0eXBlcyBvciB3aGVuIGlubGluZSBlbmNyeXB0aW9uIGlzIG5vdCByZXF1aXJlZCwgaXQg aXMgc2V0IHRvIDAuDQo+ID4+ICsNCj4gPj4gIFRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzIG9u bHkgYXBwbHkgaWYgdGhlIFZJUlRJT19CTEtfRl9aT05FRA0KPiA+PiBmZWF0dXJlIGlzIG5lZ290 aWF0ZWQuDQo+ID4+DQo+ID4+IC0tDQo+ID4+IDIuMzQuMQ0KPiA+Pg0KPiA+DQo+ID4gRGlzY2xh aW1lcjogVGhpcyBlbWFpbCBhbmQgYW55IGZpbGVzIHRyYW5zbWl0dGVkIHdpdGggaXQgbWF5IGNv bnRhaW4NCj4gY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIGludGVuZGVkIGZvciB0aGUgYWRkcmVz c2VlKHMpIG9ubHkuIFRoZSBpbmZvcm1hdGlvbg0KPiBpcyBub3QgdG8gYmUgc3VycmVuZGVyZWQg b3IgY29waWVkIHRvIHVuYXV0aG9yaXplZCBwZXJzb25zLiBJZiB5b3UgaGF2ZQ0KPiByZWNlaXZl ZCB0aGlzIGNvbW11bmljYXRpb24gaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBp bW1lZGlhdGVseQ0KPiBhbmQgZGVsZXRlIHRoaXMgZS1tYWlsIGZyb20geW91ciBzeXN0ZW0uDQoN CkRpc2NsYWltZXI6IFRoaXMgZW1haWwgYW5kIGFueSBmaWxlcyB0cmFuc21pdHRlZCB3aXRoIGl0 IG1heSBjb250YWluIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBpbnRlbmRlZCBmb3IgdGhlIGFk ZHJlc3NlZShzKSBvbmx5LiBUaGUgaW5mb3JtYXRpb24gaXMgbm90IHRvIGJlIHN1cnJlbmRlcmVk IG9yIGNvcGllZCB0byB1bmF1dGhvcml6ZWQgcGVyc29ucy4gSWYgeW91IGhhdmUgcmVjZWl2ZWQg dGhpcyBjb21tdW5pY2F0aW9uIGluIGVycm9yLCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1t ZWRpYXRlbHkgYW5kIGRlbGV0ZSB0aGlzIGUtbWFpbCBmcm9tIHlvdXIgc3lzdGVtLg0K