Re: [PATCH v7 3/8] gpu: nova-core: add TLV parser for firmware files
Timur Tabi <[email protected]> Mon, 3 Aug 2026 22:05:24 +0000
| Newsgroups | org.kernel.vger.rust-for-linux,dev.linux.lists.driver-core,dev.linux.lists.nova-gpu |
|---|---|
| Message-ID | <[email protected]> |
T24gTW9uLCAyMDI2LTA4LTAzIGF0IDIzOjM2ICswMjAwLCBEYW5pbG8gS3J1bW1yaWNoIHdyb3Rl Ogo+IEBNaWd1ZWw6IE9uZSBjb25zaWRlcmF0aW9uIGZvciB5b3UgYmVsb3cuCj4gCj4gT24gRnJp IEp1bCAzMSwgMjAyNiBhdCAxMDoxMCBQTSBDRVNULCBUaW11ciBUYWJpIHdyb3RlOgo+ID4gK2lt cGw8J2E+IFRsdjwnYT4gewo+ID4gK8KgwqDCoCBjb25zdCBNQUdJQzogJidzdGF0aWMgW3U4OyA0 XSA9IGIiTlZGVyI7Cj4gPiArCj4gPiArwqDCoMKgIC8vLyBQYXJzZXMgYGRhdGFgIGFzIGEgVExW IGZpcm13YXJlIGltYWdlLCByZXR1cm5pbmcgW2BFSU5WQUxgXSBpZiB0aGUgaW1hZ2UgaXMKPiA+ IG1hbGZvcm1lZC4KPiA+ICvCoMKgwqAgcHViKGNyYXRlKSBmbiBuZXcoZGF0YTogJidhIFt1OF0p IC0+IFJlc3VsdDxTZWxmPiB7Cj4gPiArwqDCoMKgwqDCoMKgwqAgLy8gVmVyaWZ5IHRoYXQgdGhl IG1hZ2ljIGJ5dGVzIGV4aXN0IGFuZCBhcmUgdGhlIGNvcnJlY3QgdmFsdWUKPiA+ICvCoMKgwqDC oMKgwqDCoCBsZXQgbWFnaWNfbGVuID0gU2VsZjo6TUFHSUMubGVuKCk7Cj4gPiArwqDCoMKgwqDC oMKgwqAgaWYgZGF0YQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmdldCguLm1hZ2ljX2xl bikKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5pc19ub25lX29yKHxtYWdpY3wgbWFnaWMg IT0gU2VsZjo6TUFHSUMpCj4gPiArwqDCoMKgwqDCoMKgwqAgewo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgcmV0dXJuIEVycihFSU5WQUwpOwo+ID4gK8KgwqDCoMKgwqDCoMKgIH0KPiA+ICsK PiA+ICvCoMKgwqDCoMKgwqDCoCAvLyBUaGUgcGF5bG9hZCBpcyB0aGUgY29udGlndW91cyBzZXF1 ZW5jZSBvZiBUTFYgYmxvY2tzIGFmdGVyIHRoZSBtYWdpYy4KPiA+ICvCoMKgwqDCoMKgwqDCoCBs ZXQgcGF5bG9hZCA9IGRhdGEuZ2V0KG1hZ2ljX2xlbi4uKS5va19vcihFSU5WQUwpPzsKPiA+ICsK PiA+ICvCoMKgwqDCoMKgwqDCoCBpZiBwYXlsb2FkLmlzX2VtcHR5KCkgewo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgLy8gUmVqZWN0IGVtcHR5IFRMViBmaWxlcwo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgcmV0dXJuIEVycihFTk9EQVRBKTsKPiA+ICvCoMKgwqDCoMKgwqDCoCB9Cj4g Cj4gVGhpcyBzZWVtcyByZWR1bmRhbnQsIGlmIHBheWxvYWQgaXMgZW1wdHkgdGhlIGJlbG93IGxv b3Agd291bGRuJ3QgZXhlY3V0ZSBhbmQKPiB0aGUgIWhhc192ZXJzIGNoZWNrIHdvdWxkIHJldHVy biBFSU5WQUwuIFdoaWNoIHNlZW1zIGNvbnNpc3RlbnQsIHNpbmNlIGVtcHR5Cj4gZGF0YSBpcyBr aW5kYSBpbnZhbGlkLgoKSSBmcmVxdWVudGx5IHN0cnVnZ2xlIHRvIGZpbmQgdGhlIHJpZ2h0IGVy cm9yIGNvZGUgaW4ga2VybmVsIGNvZGUsIGVzcGVjaWFsbHkgZm9yIHNpdHVhdGlvbnMKd2hlcmUg c29tZSBkYXRhIHN0cnVjdHVyZSBpcyBub3QgcXVpdGUgcmlnaHQuCgo+ID4gK8KgwqDCoMKgwqDC oMKgIC8vIFRoZSBzcGVjIHNheXMgZXZlcnkgVExWIG11c3QgaGF2ZSBhIFZFUlMgdGFnLgo+ID4g K8KgwqDCoMKgwqDCoMKgIGxldCBtdXQgaGFzX3ZlcnMgPSBmYWxzZTsKPiA+ICsKPiA+ICvCoMKg wqDCoMKgwqDCoCBsZXQgbXV0IHJlc3QgPSBwYXlsb2FkOwo+ID4gK8KgwqDCoMKgwqDCoMKgIHdo aWxlICFyZXN0LmlzX2VtcHR5KCkgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy8gVmFs aWRhdGUgYW5kIGV4dHJhY3QgdGhlIGhlYWRlciAodHlwZSwgbGVuZ3RoKS4KPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGxldCBTb21lKGhlYWRlcik6IE9wdGlvbjxUbHZCbG9ja0hlYWRlcj4g PSByZXN0Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5nZXQoLi5UbHZCbG9j a0hlYWRlcjo6U0laRSkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmFuZF90 aGVuKFRsdkJsb2NrSGVhZGVyOjpwYXJzZSkKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVs c2Ugewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gRXJyKEVJTlZB TCk7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Owo+ID4gKwo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaGFzX3ZlcnMgfD0gaGVhZGVyLnRhZyA9PSAqYiJWRVJTIjsKPiA+ICsKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIFRoZSBgbGVuZ3RoYCBmaWVsZCBvZiBhIFRMViBi bG9jayBjb250YWlucyB0aGUgYWN0dWFsIGJ5dGUgbGVuZ3RoIG9mIHRoZQo+ID4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgLy8gdmFsdWUsIGJ1dCBlYWNoIFRMViBibG9jayBpcyBhbGlnbmVkIHRv IGEgNC1ieXRlIGJvdW5kYXJ5Lgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IFNvbWUo c3RvcmVkX3NpemUpID0gaGVhZGVyLmxlbmd0aC5jaGVja2VkX25leHRfbXVsdGlwbGVfb2YoNCkg ZWxzZSB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBFcnIoRUlO VkFMKTsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH07Cj4gPiArCj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBsZXQgbGVuZ3RoID0gVGx2QmxvY2tIZWFkZXI6OlNJWkUKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmNoZWNrZWRfYWRkKHN0b3JlZF9zaXplKQo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAub2tfb3IoRUlOVkFMKT87Cj4gPiArCj4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXN0ID0gcmVzdC5zcGxpdF9hdF9jaGVja2VkKGxl bmd0aCkub2tfb3IoRUlOVkFMKT8uMTsKPiA+ICvCoMKgwqDCoMKgwqDCoCB9Cj4gPiArCj4gPiAr wqDCoMKgwqDCoMKgwqAgaWYgIWhhc192ZXJzIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHJldHVybiBFcnIoRUlOVkFMKTsKPiA+ICvCoMKgwqDCoMKgwqDCoCB9Cj4gCj4gWy4uLl0KPiAK PiA+ICvCoMKgwqAgZm4gZmluZCgmc2VsZiwgdGFnOiAmW3U4OyA0XSkgLT4gUmVzdWx0PFRsdkJs b2NrPCdhPj4gewo+ID4gK8KgwqDCoMKgwqDCoMKgIHNlbGYuaXRlcigpLmZpbmQofGJ8IGIudGFn ID09ICp0YWcpLm9rX29yKEVJTlZBTCkKPiA+ICvCoMKgwqAgfQo+IAo+IE5JVDogRG8gd2UgcmVh bGx5IGtub3cgdGhlIHRhZyBpcyBpbnZhbGlkIGp1c3QgYmVjYXVzZSBpdCB3YXNuJ3QgZm91bmQ/ CgpXZWxsLCBtYXliZSB0aGlzIGlzIHdoZXJlIHdlIHNob3VsZCByZXR1cm4gRU5PREFUQT8KCkkg YW0gZXhwZWN0aW5nIGZ1dHVyZSBOb3ZhIGNvZGUgdG8gaGFuZGxlIHRhZ3MgdGhhdCBtYXkgYmUg bGVnaXRpbWF0ZWx5IGFic2VudCwgc28gbWF5YmUgaGF2aW5nCml0IHJldHVybiBFTk9EQVRBIGlm IHRoZSB0YWcgaXMgbWlzc2luZywgYW5kIEVJTlZBTCBpbiBhbGwgb3RoZXIgc2l0dWF0aW9ucyBp cyBiZXR0ZXIuCgo+ID4gK8KgwqDCoCAvLy8gUmV0dXJuIGEgc2xpY2Ugb2YgYnl0ZXMuwqAgUmV0 dXJucyBFTk9EQVRBIGlmIHRoZSB2YWx1ZSBpcyBlbXB0eS4KPiA+ICvCoMKgwqAgcHViKGNyYXRl KSBmbiBnZXRfYnl0ZXMoJnNlbGYsIHRhZzogJlt1ODsgNF0pIC0+IFJlc3VsdDwmJ2EgW3U4XT4g ewo+ID4gK8KgwqDCoMKgwqDCoMKgIGxldCB0bHYgPSBzZWxmLmZpbmQodGFnKT87Cj4gPiArCj4g PiArwqDCoMKgwqDCoMKgwqAgLy8gVHJlYXQgZW1wdHkgdmFsdWUgYXMgYW4gZXJyb3IsIHRvIGF2 b2lkIHRyeWluZyB0byBwYXJzZSBub3RoaW5nLgo+ID4gK8KgwqDCoMKgwqDCoMKgIGlmIHRsdi52 YWx1ZS5pc19lbXB0eSgpIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBFcnIo RU5PREFUQSk7Cj4gPiArwqDCoMKgwqDCoMKgwqAgfQo+IAo+IFRoaXMgb25lIHNlZW1zIHJlc29u YWJsZTsgYnV0IHdlIGRvbid0IGhhdmUgdGhlIGVycm9yIGNvZGUgaW4gcGxhY2UuIFRoZSBjb21t aXQKPiBtZXNzYWdlIHNheXMgdGhlIHNlcmllcyBkZXBlbmRzIG9uIFsxXSwgYnV0IHRoaXMgbGlr ZWx5IGdvZXMgdGhyb3VnaCB0aGUgUnVzdAo+IHRyZWUuCgpDYW4ndCB5b3UganVzdCBwaWNrIGl0 IHVwIGZyb20gdGhlIFJ1c3QgdHJlZSBhbmQgcHV0IGl0IGluIGRybS1ydXN0LW5leHQ/Cgo+IEVp dGhlciB3ZSBqdXN0IGFkZCB0aGlzIHNpbmdsZSBlcnJvciBjb2RlIGluIGEgc2VwYXJhdGUgcGF0 Y2ggb3IgTWlndWVsIHByb3ZpZGVzCj4gYSBzaWduZWQgdGFnIGZvciBbMV0uCj4gCj4gU2luY2Ug dGhpcyBpcyBhIHBlcmZlY3RseSB0cml2aWFsIGNvbmZsaWN0LCBJJ2QgZ28gZm9yIHRoZSBmb3Jt ZXIuCgpUaGUgbGF0dGVyIHNlZW1zIHNpbXBsZXIgdG8gbWUsIGFuZCB3b3VsZCBhdm9pZCBhbiBh bm5veWluZyBtZXJnZSBjb25mbGljdC4K