[PATCH v8 6/6] ieee1275: support added for multiple nvme bootpaths
Avnish Chouhan <[email protected]> Mon, 23 Feb 2026 19:14:11 +0530
| Newsgroups | org.gnu.grub-devel |
|---|---|
| Message-ID | <[email protected]> |
VGhpcyBwYXRjaCBzZXRzIG11cGx0aXBsZSBOVk1lIGJvb3QtZGV2aWNlcyBmb3IgbW9yZSByb2J1 c3QgYm9vdC4KU2NlbmFyaW8gd2hlcmUgTlZNZSBtdWx0aXBhdGhzIGFyZSBhdmFpbGFibGUsIGFs bCB0aGUgYXZhaWxhYmxlIGJvb3RwYXRocyAoTWF4IDUpCndpbGwgYmUgYWRkZWQgYXMgdGhlIGJv b3QtZGV2aWNlLgoKU2lnbmVkLW9mZi1ieTogQXZuaXNoIENob3VoYW4gPGF2bmlzaEBsaW51eC5p Ym0uY29tPgotLS0KIGdydWItY29yZS9vc2RlcC91bml4L3BsYXRmb3JtLmMgfCAxMTggKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIGdydWItY29y ZS9vc2RlcC9saW51eC9vZnBhdGguYyAgfCAgIDQgKystLQogaW5jbHVkZS9ncnViL3V0aWwvaW5z dGFsbC5oICAgICB8ICAgMyArKysKIGluY2x1ZGUvZ3J1Yi91dGlsL29mcGF0aC5oICAgICAgfCAg IDQgKysrKwogNCBmaWxlIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9uKC0p CgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL29zZGVwL3VuaXgvcGxhdGZvcm0uYyBiL2dydWItY29y ZS9vc2RlcC91bml4L3BsYXRmb3JtLmMKaW5kZXggZGU3MTIyMS4uNDYzMmY0MSAxMDA2NDQKLS0t IGEvZ3J1Yi1jb3JlL29zZGVwL3VuaXgvcGxhdGZvcm0uYworKysgYi9ncnViLWNvcmUvb3NkZXAv dW5peC9wbGF0Zm9ybS5jCkBAIC0yOCw2ICsyOCwxMCBAQAogI2luY2x1ZGUgPGRpcmVudC5oPgog I2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Z3J1Yi91 dGlsL29mcGF0aC5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKworI2RlZmluZSBCT09UREVWX0JV RkZFUiAgMTAwMAogCiBzdGF0aWMgY2hhciAqCiBnZXRfb2ZwYXRobmFtZSAoY29uc3QgY2hhciAq ZGV2KQpAQCAtMTc2LDYgKzE4MCwxMDcgQEAgZ3J1Yl9pbnN0YWxsX3JlZ2lzdGVyX2VmaSAoZ3J1 Yl9kZXZpY2VfdCBlZmlkaXJfZ3J1Yl9kZXYsCiAgIHJldHVybiByZXQ7CiB9CiAKKworY2hhciAq CithZGRfbXVsdGlwbGVfbnZtZV9ib290ZGV2aWNlcyAoY29uc3QgY2hhciAqaW5zdGFsbF9kZXZp Y2UpCit7CisgIGNoYXIgKnN5c2ZzX3BhdGgsICpudm1lX25zLCAqcHRyLCAqbm9uX3NwbGl0dGVy X3BhdGg7CisgIHVuc2lnbmVkIGludCBuc2lkOworICBjaGFyICptdWx0aXBhdGhfYm9vdCwgKm9m cGF0aCwgKmV4dF9kaXI7CisgIHN0cnVjdCBkaXJlbnQgKmVwLCAqc3BsaXR0ZXJfZXA7CisgIERJ UiAqZHAsICpzcGxpdHRlcl9kcDsKKyAgY2hhciAqY250bF9pZCwgKmRpclIxLCAqZGlyUjIsICpz cGxpdHRlcl9pbmZvX3BhdGg7CisgIGJvb2wgaXNfRkMgPSBmYWxzZSwgaXNfc3BsaXR0ZXIgPSBm YWxzZTsKKworICBudm1lX25zID0gZ3J1Yl9zdHJzdHIgKGluc3RhbGxfZGV2aWNlLCAibnZtZSIp OworICBuc2lkID0gb2ZfcGF0aF9nZXRfbnZtZV9uc2lkIChudm1lX25zKTsKKyAgaWYgKG5zaWQg PT0gMCkKKyAgICByZXR1cm4gTlVMTDsKKworICBzeXNmc19wYXRoID0gbnZtZV9nZXRfc3lzcGF0 aCAobnZtZV9ucyk7CisgIG9mcGF0aCA9IHhhc3ByaW50ZiAoIiVzIiwgZ2V0X29mcGF0aG5hbWUg KG52bWVfbnMpKTsKKworICBpZiAoZ3J1Yl9zdHJzdHIgKG9mcGF0aCwgImZpYnJlLWNoYW5uZWwi KSkKKyAgICB7CisgICAgICBzdHJjYXQgKHN5c2ZzX3BhdGgsICIvZGV2aWNlIik7CisgICAgICBp c19GQyA9IHRydWU7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgc3RyY2F0IChzeXNmc19w YXRoLCAiL3N1YnN5c3RlbSIpOworICAgICAgaXNfRkMgPSBmYWxzZTsKKyAgICB9CisgIGlmIChp c19GQyA9PSBmYWxzZSkKKyAgICB7CisgICAgICBjbnRsX2lkID0gZ3J1Yl9zdHJzdHIgKG52bWVf bnMsICJlIik7CisgICAgICBkaXJSMSA9IHhhc3ByaW50ZiAoIm52bWUlYyIsY250bF9pZFsxXSk7 CisKKyAgICAgIHNwbGl0dGVyX2luZm9fcGF0aCA9IHhhc3ByaW50ZiAoIi9zeXMvYmxvY2svJXMv ZGV2aWNlIiwgbnZtZV9ucyk7CisgICAgICBzcGxpdHRlcl9kcCA9IG9wZW5kaXIgKHNwbGl0dGVy X2luZm9fcGF0aCk7CisgICAgICBpZiAoIXNwbGl0dGVyX2RwKQorICAgICAgICByZXR1cm4gTlVM TDsKKworICAgICAgd2hpbGUgKChzcGxpdHRlcl9lcCA9IHJlYWRkaXIgKHNwbGl0dGVyX2RwKSkg IT0gTlVMTCkKKyAgICAgICAgeworICAgICAgICAgIGlmIChncnViX3N0cnN0ciAoc3BsaXR0ZXJf ZXAtPmRfbmFtZSwgIm52bWUiKSkKKwkgICAgeworCSAgICAgIGlmIChncnViX3N0cnN0ciAoc3Bs aXR0ZXJfZXAtPmRfbmFtZSwgZGlyUjEpKQorCSAgICAgICAgY29udGludWU7CisKKyAgICAgICAg ICAgICAgZXh0X2RpciA9IGdydWJfc3RyY2hyIChzcGxpdHRlcl9lcC0+ZF9uYW1lLCAnZScpOwor ICAgICAgICAgICAgICBpZiAoZ3J1Yl9zdHJjaHIgKGV4dF9kaXIsICduJykgPT0gTlVMTCkKKwkg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGRpclIyID0geGFzcHJpbnRmKCIlcyIsIHNwbGl0 dGVyX2VwLT5kX25hbWUpOworCSAgICAgICAgICBpc19zcGxpdHRlciA9IHRydWU7CisJICAgICAg ICAgIGJyZWFrOworCSAgICAgICAgfQorCSAgICB9CisgICAgICAgIH0KKyAgICAgIGNsb3NlZGly IChzcGxpdHRlcl9kcCk7CisgICAgfQorICBzeXNmc19wYXRoID0geHJlYWxwYXRoIChzeXNmc19w YXRoKTsKKyAgZHAgPSBvcGVuZGlyIChzeXNmc19wYXRoKTsKKyAgaWYgKCFkcCkKKyAgICByZXR1 cm4gTlVMTDsKKworICBwdHIgPSBtdWx0aXBhdGhfYm9vdCA9IHhtYWxsb2MgKEJPT1RERVZfQlVG RkVSKTsKKyAgaWYgKGlzX3NwbGl0dGVyID09IGZhbHNlICYmIGlzX0ZDID09IGZhbHNlKQorICAg IHsKKyAgICAgIG5vbl9zcGxpdHRlcl9wYXRoID0geGFzcHJpbnRmICgiJXMvbmFtZXNwYWNlQCV4 OjEgIiwgZ2V0X29mcGF0aG5hbWUgKGRpclIxKSwgbnNpZCk7CisgICAgICBzdHJuY3B5IChwdHIs IG5vbl9zcGxpdHRlcl9wYXRoLCBzdHJsZW4gKG5vbl9zcGxpdHRlcl9wYXRoKSk7CisgICAgICBw dHIgKz0gc3RybGVuIChub25fc3BsaXR0ZXJfcGF0aCk7CisgICAgICBmcmVlIChub25fc3BsaXR0 ZXJfcGF0aCk7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgd2hpbGUgKChlcCA9IHJlYWRk aXIgKGRwKSkgIT0gTlVMTCkKKyAgICAgICAgeworICAgICAgICAgIGNoYXIgKnBhdGg7CisKKyAg ICAgICAgICBpZiAoZ3J1Yl9zdHJzdHIgKGVwLT5kX25hbWUsICJudm1lIikgIT0gTlVMTCkKKyAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKGlzX0ZDID09IGZhbHNlICYmIGdydWJfc3Ry c3RyIChlcC0+ZF9uYW1lLCBkaXJSMSkgPT0gTlVMTCAmJgorICAgICAgICAgICAgICAgICAgZ3J1 Yl9zdHJzdHIgKGVwLT5kX25hbWUsIGRpclIyKSA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGNv bnRpbnVlOworICAgICAgICAgICAgICBwYXRoID0geGFzcHJpbnRmICgiJXMvbmFtZXNwYWNlQCV4 ICIsIGdldF9vZnBhdGhuYW1lIChlcC0+ZF9uYW1lKSwgbnNpZCk7CisgICAgICAgICAgICAgIGlm ICgoc3RybGVuIChtdWx0aXBhdGhfYm9vdCkgKyBzdHJsZW4gKHBhdGgpKSA+IEJPT1RERVZfQlVG RkVSKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGdydWJfdXRpbF93YXJu IChfKCJNYXhpbXVtIGZpdmUgZW50cmllcyBhcmUgYWxsb3dlZCBpbiB0aGUgYm9vdGxpc3QiKSk7 CisgICAgICAgICAgICAgICAgICBmcmVlIChwYXRoKTsKKyAgICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgc3RybmNweSAocHRyLCBwYXRoLCBz dHJsZW4gKHBhdGgpKTsKKyAgICAgICAgICAgICAgcHRyICs9IHN0cmxlbiAocGF0aCk7CisgICAg ICAgICAgICAgIGZyZWUgKHBhdGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor ICAqLS1wdHIgPSAnXDAnOworICBjbG9zZWRpciAoZHApOworCisgIHJldHVybiBtdWx0aXBhdGhf Ym9vdDsKK30KKwogdm9pZAogZ3J1Yl9pbnN0YWxsX3JlZ2lzdGVyX2llZWUxMjc1IChpbnQgaXNf cHJlcCwgY29uc3QgY2hhciAqaW5zdGFsbF9kZXZpY2UsCiAJCQkJaW50IHBhcnRubywgY29uc3Qg Y2hhciAqcmVscGF0aCkKQEAgLTIxNSw4ICszMjAsMTkgQEAgZ3J1Yl9pbnN0YWxsX3JlZ2lzdGVy X2llZWUxMjc1IChpbnQgaXNfcHJlcCwgY29uc3QgY2hhciAqaW5zdGFsbF9kZXZpY2UsCiAJfQog ICAgICAgKnB0ciA9ICdcMCc7CiAgICAgfQorICBlbHNlIGlmIChncnViX3N0cnN0ciAoaW5zdGFs bF9kZXZpY2UsICJudm1lIikpCisgICAgeworICAgICAgYm9vdF9kZXZpY2UgPSBhZGRfbXVsdGlw bGVfbnZtZV9ib290ZGV2aWNlcyAoaW5zdGFsbF9kZXZpY2UpOworICAgIH0KICAgZWxzZQotICAg IGJvb3RfZGV2aWNlID0gZ2V0X29mcGF0aG5hbWUgKGluc3RhbGxfZGV2aWNlKTsKKyAgICB7Cisg ICAgICBib290X2RldmljZSA9IGdldF9vZnBhdGhuYW1lIChpbnN0YWxsX2RldmljZSk7CisgICAg ICBpZiAoZ3J1Yl9zdHJzdHIgKGJvb3RfZGV2aWNlLCAibnZtZS1vZiIpKQorICAgICAgICB7Cisg ICAgICAgICAgZnJlZSAoYm9vdF9kZXZpY2UpOworICAgICAgICAgIGJvb3RfZGV2aWNlID0gYWRk X211bHRpcGxlX252bWVfYm9vdGRldmljZXMgKGluc3RhbGxfZGV2aWNlKTsKKyAgICAgICAgfQor ICAgIH0KIAogICBpZiAoZ3J1Yl91dGlsX2V4ZWMgKChjb25zdCBjaGFyICogW10peyAibnZzZXRl bnYiLCAiYm9vdC1kZXZpY2UiLAogCSAgYm9vdF9kZXZpY2UsIE5VTEwgfSkpCmRpZmYgLS1naXQg YS9ncnViLWNvcmUvb3NkZXAvbGludXgvb2ZwYXRoLmMgYi9ncnViLWNvcmUvb3NkZXAvbGludXgv b2ZwYXRoLmMKaW5kZXggNzE1OGM4Yy4uM2E3NzhlMCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL29z ZGVwL2xpbnV4L29mcGF0aC5jCisrKyBiL2dydWItY29yZS9vc2RlcC9saW51eC9vZnBhdGguYwpA QCAtMjA5LDcgKzIwOSw3IEBAIGZpbmRfb2JwcGF0aCAoY29uc3QgY2hhciAqc3lzZnNfcGF0aF9v cmlnKQogICAgIH0KIH0KCi1zdGF0aWMgY2hhciAqCitjaGFyICoKIHhyZWFscGF0aCAoY29uc3Qg Y2hhciAqaW4pCiB7CiAgIGNoYXIgKm91dDsKQEAgLTY4NCw3ICs2ODQsNyBAQCBvZl9wYXRoX2dl dF9udm1lX25zaWQgKGNvbnN0IGNoYXIqIGRldm5hbWUpCiAgIHJldHVybiBuc2lkOwogfQoKLXN0 YXRpYyBjaGFyICoKK2NoYXIgKgogbnZtZV9nZXRfc3lzcGF0aCAoY29uc3QgY2hhciAqbnZtZWRl dikKIHsKICAgY2hhciAqc3lzZnNfcGF0aDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi91dGls L2luc3RhbGwuaCBiL2luY2x1ZGUvZ3J1Yi91dGlsL2luc3RhbGwuaAppbmRleCA1MWYzYjEzLi5h NjdlMjI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvdXRpbC9pbnN0YWxsLmgKKysrIGIvaW5j bHVkZS9ncnViL3V0aWwvaW5zdGFsbC5oCkBAIC0yMzUsNiArMjM1LDkgQEAgZ3J1Yl9pbnN0YWxs X3JlZ2lzdGVyX2VmaSAoZ3J1Yl9kZXZpY2VfdCBlZmlkaXJfZ3J1Yl9kZXYsCiAJCQkgICBjb25z dCBjaGFyICplZmlmaWxlX3BhdGgsCiAJCQkgICBjb25zdCBjaGFyICplZmlfZGlzdHJpYnV0b3Ip OwogCitjaGFyICoKK2FkZF9tdWx0aXBsZV9udm1lX2Jvb3RkZXZpY2VzIChjb25zdCBjaGFyICpp bnN0YWxsX2RldmljZSk7CisKIHZvaWQKIGdydWJfaW5zdGFsbF9yZWdpc3Rlcl9pZWVlMTI3NSAo aW50IGlzX3ByZXAsIGNvbnN0IGNoYXIgKmluc3RhbGxfZGV2aWNlLAogCQkJCWludCBwYXJ0bm8s IGNvbnN0IGNoYXIgKnJlbHBhdGgpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL3V0aWwvb2Zw YXRoLmggYi9pbmNsdWRlL2dydWIvdXRpbC9vZnBhdGguaAppbmRleCA1OTYyMzIyLi43OGU3OGU3 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvdXRpbC9vZnBhdGguaAorKysgYi9pbmNsdWRlL2dy dWIvdXRpbC9vZnBhdGguaApAQCAtMzAsNSArMzAsOSBAQCBpbnQgYWRkX2ZpbGVuYW1lX3RvX3Bp bGUgKGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3Qgb2ZwYXRoX2ZpbGVzX2xpc3Rfcm9vdCogcm9vdCk7 CiB2b2lkIGZpbmRfZmlsZSAoY2hhciogZmlsZW5hbWUsIGNoYXIqIGRpcmVjdG9yeSwgc3RydWN0 IG9mcGF0aF9maWxlc19saXN0X3Jvb3QqIHJvb3QsIGludCBtYXhfZGVwdGgsIGludCBkZXB0aCk7 CiBjaGFyKiBvZl9maW5kX2ZjX2hvc3QgKGNoYXIqIGhvc3Rfd3dwbik7CiB2b2lkIGZyZWVfb2Zw YXRoX2ZpbGVzX2xpc3QgKHN0cnVjdCBvZnBhdGhfZmlsZXNfbGlzdF9yb290KiByb290KTsKK2No YXIqIG52bWVfZ2V0X3N5c3BhdGggKGNvbnN0IGNoYXIgKm52bWVkZXYpOwordW5zaWduZWQgaW50 IG9mX3BhdGhfZ2V0X252bWVfbnNpZCAoY29uc3QgY2hhciogZGV2bmFtZSk7CitjaGFyKiB4cmVh bHBhdGggKGNvbnN0IGNoYXIgKmluKTsKKwogCiAjZW5kaWYgLyogISBHUlVCX09GUEFUSF9NQUNI SU5FX1VUSUxfSEVBREVSICovCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5n IGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xp c3RpbmZvL2dydWItZGV2ZWwK