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 dev.linux.lists.nova-gpu,dev.linux.lists.driver-core,org.kernel.vger.rust-for-linux
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