From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: [PATCH v6 08/14] hvmloader: Locate the BIOS blob Date: Tue, 12 Jul 2016 15:42:45 +0100 Message-ID: <20160712144251.558-9-anthony.perard@citrix.com> References: <20160712144251.558-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: <20160712144251.558-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 UkFSRCA8YW50aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KCi0tLQpDaGFuZ2VzIGluIFY2OgotIGNh c3QgYWRkcmVzc2VzIHRvIHVpbnRwdHJfdCBpbnN0ZWFkIG9mIHVpbnQzMl90LgotIHVzZSBVSU5U UFRSX01BWCBmb3IgdGhlIHVwcGVyIGJvdW5kYXJ5IGNoZWNrcy4KLSBEbyBhIGZ1bGwgY2hlY2sg b2YgZXZlcnkgdGhpbmdzIHRoYXQgYXJlIHVzZWQsIGNoZWNrIHRoYXQgbW9kbGlzdCwKICBjbWRs aW5lcywgbW9kdWxlcyBsaXZlcyBiZWxvdyA0R0IgYW5kIGRvZXMgbm90IGNyb3NzIHRoZSBib3Vu ZGFyeS4KCkNoYW5nZXMgaW4gVjU6Ci0gZG9uJ3QgQlVHKCkgb24gbW9kdWxlJ3MgcGFkZHIgaGF2 aW5nIHZhbHVlIDAsIGFuZCBqdXN0IHNraXAuCi0gZml4IHNvbWUgY29kaW5nIHN0eWxlCi0gcmVu YW1lIG1vZHVsZSBuYW1lIHRvICJmaXJtd2FyZSIgKHdhcyAiYmlvcyIpCi0gbGVzcyB1c2Ugb2Yg QlVHX09OIGluIGdldF9tb2R1bGVfZW50cnkoKSBhbmQgc2tpcCBlbnRyaWVzIGluc3RlYWQuCiAg T25seSBCVUcoKSBpZiB0aGUgbW9kdWxlIHdoaWNoIG1hdGNoIG5hbWUgaXMgbm90IGFjY2Vzc2li bGUuCgpDaGFuZ2VzIGluIFY0OgotIGFkZCBtb3JlIEJVR19PTiBpbnRvIGdldF9tb2R1bGVfZW50 cnkoKS4gQ2hlY2sgdGhhdCBtb2R1bGVzIHBhZGRyIGFuZAogIHNpemUgYXJlIDMyYml0cy4KCkNo YW5nZXMgaW4gVjM6Ci0gZml4IHNvbWUgY29keWluZyBzdHlsZQotIHVzZSBtb2R1bGUuY21kbGlu ZSB0byBsb29rIGZvciBhIG1vZHVsZSBuYW1lIGluc3RlYWQgb2YgdGhlIG1haW4gY21kbGluZQog IGZyb20gaHZtX3N0YXJ0X2luZm8uCi0tLQogdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2NvbmZp Zy5oICAgIHwgIDIgKy0KIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9odm1sb2FkZXIuYyB8IDYw ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogdG9vbHMvZmlybXdhcmUvaHZt bG9hZGVyL292bWYuYyAgICAgIHwgIDMgKy0KIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9yb21i aW9zLmMgICB8ICAzICstCiA0IGZpbGVzIGNoYW5nZWQsIDYzIGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2NvbmZpZy5o IGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2NvbmZpZy5oCmluZGV4IGI4MzhjZjkuLjRjNmQ4 YWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9jb25maWcuaAorKysgYi90 b29scy9maXJtd2FyZS9odm1sb2FkZXIvY29uZmlnLmgKQEAgLTIyLDcgKzIyLDcgQEAgc3RydWN0 IGJpb3NfY29uZmlnIHsKICAgICAvKiBST01TICovCiAgICAgdm9pZCAoKmxvYWRfcm9tcykodm9p ZCk7CiAKLSAgICB2b2lkICgqYmlvc19sb2FkKShjb25zdCBzdHJ1Y3QgYmlvc19jb25maWcgKmNv bmZpZyk7CisgICAgdm9pZCAoKmJpb3NfbG9hZCkoY29uc3Qgc3RydWN0IGJpb3NfY29uZmlnICpj b25maWcsIHZvaWQgKmFkZHIsIHVpbnQzMl90IHNpemUpOwogCiAgICAgdm9pZCAoKmJpb3NfaW5m b19zZXR1cCkodm9pZCk7CiAgICAgdm9pZCAoKmJpb3NfaW5mb19maW5pc2gpKHZvaWQpOwpkaWZm IC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2h2bWxvYWRlci5jIGIvdG9vbHMvZmly bXdhcmUvaHZtbG9hZGVyL2h2bWxvYWRlci5jCmluZGV4IDc3YzcwZTAuLjVjNTdhYjMgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9odm1sb2FkZXIuYworKysgYi90b29scy9m aXJtd2FyZS9odm1sb2FkZXIvaHZtbG9hZGVyLmMKQEAgLTI1NCwxMCArMjU0LDU3IEBAIHN0YXRp YyB2b2lkIGFjcGlfZW5hYmxlX3NjaSh2b2lkKQogICAgIEJVR19PTighKHBtMWFfY250X3ZhbCAm IEFDUElfUE0xQ19TQ0lfRU4pKTsKIH0KIAorY29uc3Qgc3RydWN0IGh2bV9tb2RsaXN0X2VudHJ5 ICpnZXRfbW9kdWxlX2VudHJ5KAorICAgIGNvbnN0IHN0cnVjdCBodm1fc3RhcnRfaW5mbyAqaW5m bywKKyAgICBjb25zdCBjaGFyICpuYW1lKQoreworICAgIGNvbnN0IHN0cnVjdCBodm1fbW9kbGlz dF9lbnRyeSAqbW9kbGlzdCA9CisgICAgICAgIChzdHJ1Y3QgaHZtX21vZGxpc3RfZW50cnkgKiko dWludHB0cl90KWluZm8tPm1vZGxpc3RfcGFkZHI7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAg ICBpZiAoICFtb2RsaXN0IHx8CisgICAgICAgICBpbmZvLT5tb2RsaXN0X3BhZGRyID4gVUlOVFBU Ul9NQVggfHwKKyAgICAgICAgIChpbmZvLT5tb2RsaXN0X3BhZGRyICsgaW5mby0+bnJfbW9kdWxl cyAqIHNpemVvZigqbW9kbGlzdCkgLSAxKQorICAgICAgICAgICAgPiBVSU5UUFRSX01BWAorICAg ICAgICAgKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgaW5m by0+bnJfbW9kdWxlczsgaSsrICkKKyAgICB7CisgICAgICAgIGNoYXIgKm1vZHVsZV9uYW1lID0g KGNoYXIqKSh1aW50cHRyX3QpbW9kbGlzdFtpXS5jbWRsaW5lX3BhZGRyOworCisgICAgICAgIC8q IFNraXAgaWYgdGhlIG1vZHVsZSBvciBpdHMgY21kbGluZSBpcyBtaXNzaW5nLiAqLworICAgICAg ICBpZiAoICFtb2R1bGVfbmFtZSB8fCAhbW9kbGlzdFtpXS5wYWRkciApCisgICAgICAgICAgICBj b250aW51ZTsKKworICAgICAgICAvKiBTa2lwIGlmIHRoZSBjbWRsaW5lIGNhbiBub3QgYmUgcmVh ZC4gKi8KKyAgICAgICAgaWYgKCBtb2RsaXN0W2ldLmNtZGxpbmVfcGFkZHIgPiBVSU5UUFRSX01B WCB8fAorICAgICAgICAgICAgIChtb2RsaXN0W2ldLmNtZGxpbmVfcGFkZHIgKyBzdHJsZW4obmFt ZSkpID4gVUlOVFBUUl9NQVggKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYg KCAhc3RyY21wKG5hbWUsIG1vZHVsZV9uYW1lKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm ICggbW9kbGlzdFtpXS5wYWRkciA+IFVJTlRQVFJfTUFYIHx8CisgICAgICAgICAgICAgICAgIG1v ZGxpc3RbaV0uc2l6ZSA+IFVJTlRQVFJfTUFYIHx8CisgICAgICAgICAgICAgICAgIChtb2RsaXN0 W2ldLnBhZGRyICsgbW9kbGlzdFtpXS5zaXplIC0gMSkgPiBVSU5UUFRSX01BWCApCisgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJDYW4gbm90IGxvYWQgXCIlc1wiIGZyb20g MHgiUFJJbGx4IiAoMHgiUFJJbGx4IilcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIG5hbWUs IFBSSWxseF9hcmcobW9kbGlzdFtpXS5wYWRkciksCisgICAgICAgICAgICAgICAgICAgICAgIFBS SWxseF9hcmcobW9kbGlzdFtpXS5zaXplKSk7CisgICAgICAgICAgICAgICAgQlVHKCk7CisgICAg ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gJm1vZGxpc3RbaV07CisgICAgICAgIH0KKyAg ICB9CisKKyAgICByZXR1cm4gTlVMTDsKK30KKwogaW50IG1haW4odm9pZCkKIHsKICAgICBjb25z dCBzdHJ1Y3QgYmlvc19jb25maWcgKmJpb3M7CiAgICAgaW50IGFjcGlfZW5hYmxlZDsKKyAgICBj b25zdCBzdHJ1Y3QgaHZtX21vZGxpc3RfZW50cnkgKmJpb3NfbW9kdWxlOwogCiAgICAgLyogSW5p dGlhbGlzZSBoeXBlcmNhbGwgc3R1YnMgd2l0aCBSRVQsIHJlbmRlcmluZyB0aGVtIG5vLW9wcy4g Ki8KICAgICBtZW1zZXQoKHZvaWQgKilIWVBFUkNBTExfUEhZU0lDQUxfQUREUkVTUywgMHhjMyAv KiBSRVQgKi8sIFBBR0VfU0laRSk7CkBAIC0yOTMsOCArMzQwLDE3IEBAIGludCBtYWluKHZvaWQp CiAgICAgfQogCiAgICAgcHJpbnRmKCJMb2FkaW5nICVzIC4uLlxuIiwgYmlvcy0+bmFtZSk7Ci0g ICAgaWYgKCBiaW9zLT5iaW9zX2xvYWQgKQotICAgICAgICBiaW9zLT5iaW9zX2xvYWQoYmlvcyk7 CisgICAgYmlvc19tb2R1bGUgPSBnZXRfbW9kdWxlX2VudHJ5KGh2bV9zdGFydF9pbmZvLCAiZmly bXdhcmUiKTsKKyAgICBpZiAoIGJpb3NfbW9kdWxlICYmIGJpb3MtPmJpb3NfbG9hZCApCisgICAg eworICAgICAgICB1aW50MzJfdCBwYWRkciA9IGJpb3NfbW9kdWxlLT5wYWRkcjsKKworICAgICAg ICBiaW9zLT5iaW9zX2xvYWQoYmlvcywgKHZvaWQqKXBhZGRyLCBiaW9zX21vZHVsZS0+c2l6ZSk7 CisgICAgfQorICAgIGVsc2UgaWYgKCBiaW9zLT5iaW9zX2xvYWQgKQorICAgIHsKKyAgICAgICAg Ymlvcy0+Ymlvc19sb2FkKGJpb3MsIE5VTEwsIDApOworICAgIH0KICAgICBlbHNlCiAgICAgewog ICAgICAgICBCVUdfT04oYmlvcy0+Ymlvc19hZGRyZXNzICsgYmlvcy0+aW1hZ2Vfc2l6ZSA+CmRp ZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvb3ZtZi5jIGIvdG9vbHMvZmlybXdh cmUvaHZtbG9hZGVyL292bWYuYwppbmRleCBkYjlmYTdhLi44NThhMmQ0IDEwMDY0NAotLS0gYS90 b29scy9maXJtd2FyZS9odm1sb2FkZXIvb3ZtZi5jCisrKyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxv YWRlci9vdm1mLmMKQEAgLTkzLDcgKzkzLDggQEAgc3RhdGljIHZvaWQgb3ZtZl9maW5pc2hfYmlv c19pbmZvKHZvaWQpCiAgICAgaW5mby0+Y2hlY2tzdW0gPSAtY2hlY2tzdW07CiB9CiAKLXN0YXRp YyB2b2lkIG92bWZfbG9hZChjb25zdCBzdHJ1Y3QgYmlvc19jb25maWcgKmNvbmZpZykKK3N0YXRp YyB2b2lkIG92bWZfbG9hZChjb25zdCBzdHJ1Y3QgYmlvc19jb25maWcgKmNvbmZpZywKKyAgICAg ICAgICAgICAgICAgICAgICB2b2lkICpiaW9zX2FkZHIsIHVpbnQzMl90IGJpb3NfbGVuZ3RoKQog ewogICAgIHhlbl9wZm5fdCBtZm47CiAgICAgdWludDY0X3QgYWRkciA9IE9WTUZfQkVHSU47CmRp ZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvcm9tYmlvcy5jIGIvdG9vbHMvZmly bXdhcmUvaHZtbG9hZGVyL3JvbWJpb3MuYwppbmRleCAxZjE1Yjk0Li4yZGVkODQ0IDEwMDY0NAot LS0gYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvcm9tYmlvcy5jCisrKyBiL3Rvb2xzL2Zpcm13 YXJlL2h2bWxvYWRlci9yb21iaW9zLmMKQEAgLTEyMSw3ICsxMjEsOCBAQCBzdGF0aWMgdm9pZCBy b21iaW9zX2xvYWRfcm9tcyh2b2lkKQogICAgICAgICAgICAgICAgb3B0aW9uX3JvbV9waHlzX2Fk ZHIgKyBvcHRpb25fcm9tX3N6IC0gMSk7CiB9CiAKLXN0YXRpYyB2b2lkIHJvbWJpb3NfbG9hZChj b25zdCBzdHJ1Y3QgYmlvc19jb25maWcgKmNvbmZpZykKK3N0YXRpYyB2b2lkIHJvbWJpb3NfbG9h ZChjb25zdCBzdHJ1Y3QgYmlvc19jb25maWcgKmNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICB2b2lkICp1bnVzZWRfYWRkciwgdWludDMyX3QgdW51c2VkX3NpemUpCiB7CiAgICAgdWlu dDMyX3QgYmlvc2hpZ2g7CiAgICAgc3RydWN0IHJvbWJpb3NfaW5mbyAqaW5mbzsKLS0gCkFudGhv bnkgUEVSQVJECgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==