From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v5 08/14] hvmloader: Locate the BIOS blob Date: Wed, 22 Jun 2016 18:15:39 +0100 Message-ID: <20160622171545.5304-9-anthony.perard@citrix.com> References: <20160622171545.5304-1-anthony.perard@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160622171545.5304-1-anthony.perard@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Anthony PERARD , Andrew Cooper , Ian Jackson , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIEJJT1MgYmxvYiBjYW4gYmUgZm91bmQgYW4gZW50cnkgY2FsbGVkICJmaXJtd2FyZSIgb2Yg dGhlIG1vZGxpc3Qgb2YKdGhlIGh2bV9zdGFydF9pbmZvIHN0cnVjdC4KClRoZSBmb3VuZCBCSU9T IGJsb2IgaXMgbm90IGxvYWRlZCBieSB0aGlzIHBhdGNoLCBidXQgb25seSBwYXNzZWQgYXMKYXJn dW1lbnQgdG8gYmlvc19sb2FkKCkgZnVuY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbnRob255IFBF UkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KCi0tLQpDaGFuZ2VzIGluIFY1OgotIGRv bid0IEJVRygpIG9uIG1vZHVsZSdzIHBhZGRyIGhhdmluZyB2YWx1ZSAwLCBhbmQganVzdCBza2lw LgotIGZpeCBzb21lIGNvZGluZyBzdHlsZQotIHJlbmFtZSBtb2R1bGUgbmFtZSB0byAiZmlybXdh cmUiICh3YXMgImJpb3MiKQotIGxlc3MgdXNlIG9mIEJVR19PTiBpbiBnZXRfbW9kdWxlX2VudHJ5 KCkgYW5kIHNraXAgZW50cmllcyBpbnN0ZWFkLgogIE9ubHkgQlVHKCkgaWYgdGhlIG1vZHVsZSB3 aGljaCBtYXRjaCBuYW1lIGlzIG5vdCBhY2Nlc3NpYmxlLgoKQ2hhbmdlcyBpbiBWNDoKLSBhZGQg bW9yZSBCVUdfT04gaW50byBnZXRfbW9kdWxlX2VudHJ5KCkuIENoZWNrIHRoYXQgbW9kdWxlcyBw YWRkciBhbmQKICBzaXplIGFyZSAzMmJpdHMuCgpDaGFuZ2VzIGluIFYzOgotIGZpeCBzb21lIGNv ZHlpbmcgc3R5bGUKLSB1c2UgbW9kdWxlLmNtZGxpbmUgdG8gbG9vayBmb3IgYSBtb2R1bGUgbmFt ZSBpbnN0ZWFkIG9mIHRoZSBtYWluIGNtZGxpbmUKICBmcm9tIGh2bV9zdGFydF9pbmZvLgotLS0K IHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9jb25maWcuaCAgICB8ICAyICstCiB0b29scy9maXJt d2FyZS9odm1sb2FkZXIvaHZtbG9hZGVyLmMgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0KIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9vdm1mLmMgICAgICB8ICAzICst CiB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvcm9tYmlvcy5jICAgfCAgMyArLQogdG9vbHMvZmly bXdhcmUvaHZtbG9hZGVyL3V0aWwuaCAgICAgIHwgIDIgKysKIDUgZmlsZXMgY2hhbmdlZCwgNTkg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9maXJtd2Fy ZS9odm1sb2FkZXIvY29uZmlnLmggYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvY29uZmlnLmgK aW5kZXggYjgzOGNmOS4uNGM2ZDhhZCAxMDA2NDQKLS0tIGEvdG9vbHMvZmlybXdhcmUvaHZtbG9h ZGVyL2NvbmZpZy5oCisrKyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9jb25maWcuaApAQCAt MjIsNyArMjIsNyBAQCBzdHJ1Y3QgYmlvc19jb25maWcgewogICAgIC8qIFJPTVMgKi8KICAgICB2 b2lkICgqbG9hZF9yb21zKSh2b2lkKTsKIAotICAgIHZvaWQgKCpiaW9zX2xvYWQpKGNvbnN0IHN0 cnVjdCBiaW9zX2NvbmZpZyAqY29uZmlnKTsKKyAgICB2b2lkICgqYmlvc19sb2FkKShjb25zdCBz dHJ1Y3QgYmlvc19jb25maWcgKmNvbmZpZywgdm9pZCAqYWRkciwgdWludDMyX3Qgc2l6ZSk7CiAK ICAgICB2b2lkICgqYmlvc19pbmZvX3NldHVwKSh2b2lkKTsKICAgICB2b2lkICgqYmlvc19pbmZv X2ZpbmlzaCkodm9pZCk7CmRpZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvaHZt bG9hZGVyLmMgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvaHZtbG9hZGVyLmMKaW5kZXggYzQ1 ZjM2Ny4uN2ZkYzg0NyAxMDA2NDQKLS0tIGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2h2bWxv YWRlci5jCisrKyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9odm1sb2FkZXIuYwpAQCAtMjUz LDEwICsyNTMsNTEgQEAgc3RhdGljIHZvaWQgYWNwaV9lbmFibGVfc2NpKHZvaWQpCiAgICAgQlVH X09OKCEocG0xYV9jbnRfdmFsICYgQUNQSV9QTTFDX1NDSV9FTikpOwogfQogCitjb25zdCBzdHJ1 Y3QgaHZtX21vZGxpc3RfZW50cnkgKmdldF9tb2R1bGVfZW50cnkoCisgICAgY29uc3Qgc3RydWN0 IGh2bV9zdGFydF9pbmZvICppbmZvLAorICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgY29u c3Qgc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5ICptb2RsaXN0ID0KKyAgICAgICAgKHN0cnVjdCBo dm1fbW9kbGlzdF9lbnRyeSAqKSh1aW50MzJfdClpbmZvLT5tb2RsaXN0X3BhZGRyOworICAgIHVu c2lnbmVkIGludCBpOworCisgICAgaWYgKCAhbW9kbGlzdCB8fCBpbmZvLT5tb2RsaXN0X3BhZGRy ID4gVUlOVF9NQVgpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZm9yICggaSA9IDA7IGkg PCBpbmZvLT5ucl9tb2R1bGVzOyBpKysgKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgbW9kdWxl X25hbWUgPSBtb2RsaXN0W2ldLmNtZGxpbmVfcGFkZHI7CisKKyAgICAgICAgLyogU2tpcCBpZiB0 aGUgbW9kdWxlIG9yIGl0cyBjbWRsaW5lIGlzIG1pc3NpbmcuICovCisgICAgICAgIGlmICggIW1v ZHVsZV9uYW1lIHx8ICFtb2RsaXN0W2ldLnBhZGRyICkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor CisgICAgICAgIC8qIFNraXAgaWYgdGhlIGNtZGxpbmUgY2FuIG5vdCBiZSByZWFkLiAqLworICAg ICAgICBpZiAoIG1vZGxpc3RbaV0uY21kbGluZV9wYWRkciA+IFVJTlRfTUFYICkKKyAgICAgICAg ICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmICggIXN0cmNtcChuYW1lLCAoY2hhciopbW9kdWxl X25hbWUpICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCBtb2RsaXN0W2ldLnBhZGRyID4g VUlOVF9NQVggfHwgbW9kbGlzdFtpXS5zaXplID4gVUlOVF9NQVggfHwKKyAgICAgICAgICAgICAg ICAgKG1vZGxpc3RbaV0ucGFkZHIgKyBtb2RsaXN0W2ldLnNpemUpID4gVUlOVF9NQVggKQorICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgIHByaW50ZigiQ2FuIG5vdCBsb2FkIFwiJXNcIiBm cm9tIDB4IlBSSWxseCIgKDB4IlBSSWxseCIpXG4iLAorICAgICAgICAgICAgICAgICAgICAgICBu YW1lLCBQUklsbHhfYXJnKG1vZGxpc3RbaV0ucGFkZHIpLAorICAgICAgICAgICAgICAgICAgICAg ICBQUklsbHhfYXJnKG1vZGxpc3RbaV0uc2l6ZSkpOworICAgICAgICAgICAgICAgIEJVRygpOwor ICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuICZtb2RsaXN0W2ldOworICAgICAgICB9 CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKIGludCBtYWluKHZvaWQpCiB7CiAgICAg Y29uc3Qgc3RydWN0IGJpb3NfY29uZmlnICpiaW9zOwogICAgIGludCBhY3BpX2VuYWJsZWQ7Cisg ICAgY29uc3Qgc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5ICpiaW9zX21vZHVsZTsKIAogICAgIC8q IEluaXRpYWxpc2UgaHlwZXJjYWxsIHN0dWJzIHdpdGggUkVULCByZW5kZXJpbmcgdGhlbSBuby1v cHMuICovCiAgICAgbWVtc2V0KCh2b2lkICopSFlQRVJDQUxMX1BIWVNJQ0FMX0FERFJFU1MsIDB4 YzMgLyogUkVUICovLCBQQUdFX1NJWkUpOwpAQCAtMjkyLDggKzMzMywxNyBAQCBpbnQgbWFpbih2 b2lkKQogICAgIH0KIAogICAgIHByaW50ZigiTG9hZGluZyAlcyAuLi5cbiIsIGJpb3MtPm5hbWUp OwotICAgIGlmICggYmlvcy0+Ymlvc19sb2FkICkKLSAgICAgICAgYmlvcy0+Ymlvc19sb2FkKGJp b3MpOworICAgIGJpb3NfbW9kdWxlID0gZ2V0X21vZHVsZV9lbnRyeShodm1fc3RhcnRfaW5mbywg ImZpcm13YXJlIik7CisgICAgaWYgKCBiaW9zX21vZHVsZSAmJiBiaW9zLT5iaW9zX2xvYWQgKQor ICAgIHsKKyAgICAgICAgdWludDMyX3QgcGFkZHIgPSBiaW9zX21vZHVsZS0+cGFkZHI7CisKKyAg ICAgICAgYmlvcy0+Ymlvc19sb2FkKGJpb3MsICh2b2lkKilwYWRkciwgYmlvc19tb2R1bGUtPnNp emUpOworICAgIH0KKyAgICBlbHNlIGlmICggYmlvcy0+Ymlvc19sb2FkICkKKyAgICB7CisgICAg ICAgIGJpb3MtPmJpb3NfbG9hZChiaW9zLCBOVUxMLCAwKTsKKyAgICB9CiAgICAgZWxzZQogICAg IHsKICAgICAgICAgQlVHX09OKGJpb3MtPmJpb3NfYWRkcmVzcyArIGJpb3MtPmltYWdlX3NpemUg PgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL292bWYuYyBiL3Rvb2xzL2Zp cm13YXJlL2h2bWxvYWRlci9vdm1mLmMKaW5kZXggZGI5ZmE3YS4uODU4YTJkNCAxMDA2NDQKLS0t IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL292bWYuYworKysgYi90b29scy9maXJtd2FyZS9o dm1sb2FkZXIvb3ZtZi5jCkBAIC05Myw3ICs5Myw4IEBAIHN0YXRpYyB2b2lkIG92bWZfZmluaXNo X2Jpb3NfaW5mbyh2b2lkKQogICAgIGluZm8tPmNoZWNrc3VtID0gLWNoZWNrc3VtOwogfQogCi1z dGF0aWMgdm9pZCBvdm1mX2xvYWQoY29uc3Qgc3RydWN0IGJpb3NfY29uZmlnICpjb25maWcpCitz dGF0aWMgdm9pZCBvdm1mX2xvYWQoY29uc3Qgc3RydWN0IGJpb3NfY29uZmlnICpjb25maWcsCisg ICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYmlvc19hZGRyLCB1aW50MzJfdCBiaW9zX2xlbmd0 aCkKIHsKICAgICB4ZW5fcGZuX3QgbWZuOwogICAgIHVpbnQ2NF90IGFkZHIgPSBPVk1GX0JFR0lO OwpkaWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL3JvbWJpb3MuYyBiL3Rvb2xz L2Zpcm13YXJlL2h2bWxvYWRlci9yb21iaW9zLmMKaW5kZXggMWYxNWI5NC4uMmRlZDg0NCAxMDA2 NDQKLS0tIGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL3JvbWJpb3MuYworKysgYi90b29scy9m aXJtd2FyZS9odm1sb2FkZXIvcm9tYmlvcy5jCkBAIC0xMjEsNyArMTIxLDggQEAgc3RhdGljIHZv aWQgcm9tYmlvc19sb2FkX3JvbXModm9pZCkKICAgICAgICAgICAgICAgIG9wdGlvbl9yb21fcGh5 c19hZGRyICsgb3B0aW9uX3JvbV9zeiAtIDEpOwogfQogCi1zdGF0aWMgdm9pZCByb21iaW9zX2xv YWQoY29uc3Qgc3RydWN0IGJpb3NfY29uZmlnICpjb25maWcpCitzdGF0aWMgdm9pZCByb21iaW9z X2xvYWQoY29uc3Qgc3RydWN0IGJpb3NfY29uZmlnICpjb25maWcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgdm9pZCAqdW51c2VkX2FkZHIsIHVpbnQzMl90IHVudXNlZF9zaXplKQogewogICAg IHVpbnQzMl90IGJpb3NoaWdoOwogICAgIHN0cnVjdCByb21iaW9zX2luZm8gKmluZm87CmRpZmYg LS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5oIGIvdG9vbHMvZmlybXdhcmUv aHZtbG9hZGVyL3V0aWwuaAppbmRleCA5ODA4MDE2Li4wMDNkYzcxIDEwMDY0NAotLS0gYS90b29s cy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5oCisrKyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRl ci91dGlsLmgKQEAgLTM0LDYgKzM0LDggQEAgZW51bSB7CiAjdW5kZWYgTlVMTAogI2RlZmluZSBO VUxMICgodm9pZCopMCkKIAorI2RlZmluZSBVSU5UX01BWCAofjBVKQorCiB2b2lkIF9fYXNzZXJ0 X2ZhaWxlZChjaGFyICphc3NlcnRpb24sIGNoYXIgKmZpbGUsIGludCBsaW5lKQogICAgIF9fYXR0 cmlidXRlX18oKG5vcmV0dXJuKSk7CiAjZGVmaW5lIEFTU0VSVChwKSBcCi0tIApBbnRob255IFBF UkFSRAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==