From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v6 01/12] misc/xenmicrocode: Upload a microcode blob to the hypervisor Date: Mon, 11 Mar 2019 15:57:25 +0800 Message-ID: <1552291056-20286-2-git-send-email-chao.gao@intel.com> References: <1552291056-20286-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h3Fkc-0003kj-9J for xen-devel@lists.xenproject.org; Mon, 11 Mar 2019 07:53:34 +0000 In-Reply-To: <1552291056-20286-1-git-send-email-chao.gao@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Sergey Dyasli , Wei Liu , Ashok Raj , Konrad Rzeszutek Wilk , Ian Jackson , Chao Gao List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBwcm92aWRlcyBhIHRvb2wgZm9yIGxhdGUgbWljcm9jb2RlIHVwZGF0ZS4KClNp Z25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KLS0tCiB0b29s cy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCB8ICAxICsKIHRvb2xzL2xpYnhjL3hjX21pc2MuYyAg ICAgICAgIHwgMjAgKysrKysrKysrKwogdG9vbHMvbWlzYy9NYWtlZmlsZSAgICAgICAgICAgfCAg NCArKwogdG9vbHMvbWlzYy94ZW5taWNyb2NvZGUuYyAgICAgfCA4OSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDExNCBpbnNlcnRp b25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbWlzYy94ZW5taWNyb2NvZGUuYwoKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oIGIvdG9vbHMvbGlieGMvaW5j bHVkZS94ZW5jdHJsLmgKaW5kZXggMzFjZGRhNy4uYzY5Njk5YiAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGMvaW5jbHVkZS94ZW5jdHJsLmgKKysrIGIvdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJs LmgKQEAgLTEyNDUsNiArMTI0NSw3IEBAIHR5cGVkZWYgdWludDMyX3QgeGNfbm9kZV90b19ub2Rl X2Rpc3RfdDsKIGludCB4Y19waHlzaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgeGNfcGh5c2luZm9f dCAqaW5mbyk7CiBpbnQgeGNfY3B1dG9wb2luZm8oeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVk ICptYXhfY3B1cywKICAgICAgICAgICAgICAgICAgICB4Y19jcHV0b3BvX3QgKmNwdXRvcG8pOwor aW50IHhjX3BsYXRmb3JtX29wKHhjX2ludGVyZmFjZSAqeGNoLCBzdHJ1Y3QgeGVuX3BsYXRmb3Jt X29wICpvcCk7CiBpbnQgeGNfbnVtYWluZm8oeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVkICpt YXhfbm9kZXMsCiAgICAgICAgICAgICAgICAgeGNfbWVtaW5mb190ICptZW1pbmZvLCB1aW50MzJf dCAqZGlzdGFuY2UpOwogaW50IHhjX3BjaXRvcG9pbmZvKHhjX2ludGVyZmFjZSAqeGNoLCB1bnNp Z25lZCBudW1fZGV2cywKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX21pc2MuYyBiL3Rvb2xz L2xpYnhjL3hjX21pc2MuYwppbmRleCA1ZTY3MTRhLi4wNjFjN2E1IDEwMDY0NAotLS0gYS90b29s cy9saWJ4Yy94Y19taXNjLmMKKysrIGIvdG9vbHMvbGlieGMveGNfbWlzYy5jCkBAIC0yMjYsNiAr MjI2LDI2IEBAIGludCB4Y19waHlzaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwKICAgICByZXR1cm4g MDsKIH0KIAoraW50IHhjX3BsYXRmb3JtX29wKHhjX2ludGVyZmFjZSAqeGNoLCBzdHJ1Y3QgeGVu X3BsYXRmb3JtX29wICpvcCkKK3sKKyAgICBpbnQgcmV0ID0gMDsKKyAgICBERUNMQVJFX1BMQVRG T1JNX09QOworICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JPVU5DRShvcCwgc2l6ZW9mKCpvcCksIFhD X0hZUEVSQ0FMTF9CVUZGRVJfQk9VTkNFX0JPVEgpOworCisgICAgaWYgKCB4Y19oeXBlcmNhbGxf Ym91bmNlX3ByZSh4Y2gsIG9wKSApCisgICAgeworICAgICAgICBQRVJST1IoIkNvdWxkIG5vdCBi b3VuY2UgeGVuX3BsYXRmb3JtX29wIG1lbW9yeSBidWZmZXIiKTsKKyAgICAgICAgcmV0dXJuIC0x OworICAgIH0KKyAgICBvcC0+aW50ZXJmYWNlX3ZlcnNpb24gPSBYRU5QRl9JTlRFUkZBQ0VfVkVS U0lPTjsKKworICAgIHBsYXRmb3JtX29wID0gKm9wOworICAgIHJldCA9IGRvX3BsYXRmb3JtX29w KHhjaCwgJnBsYXRmb3JtX29wKTsKKyAgICB4Y19oeXBlcmNhbGxfYm91bmNlX3Bvc3QoeGNoLCBv cCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCiBpbnQgeGNfY3B1dG9wb2luZm8oeGNfaW50ZXJm YWNlICp4Y2gsIHVuc2lnbmVkICptYXhfY3B1cywKICAgICAgICAgICAgICAgICAgICB4Y19jcHV0 b3BvX3QgKmNwdXRvcG8pCiB7CmRpZmYgLS1naXQgYS90b29scy9taXNjL01ha2VmaWxlIGIvdG9v bHMvbWlzYy9NYWtlZmlsZQppbmRleCA1MWFkYjZmLi5jMjk3YTc1IDEwMDY0NAotLS0gYS90b29s cy9taXNjL01ha2VmaWxlCisrKyBiL3Rvb2xzL21pc2MvTWFrZWZpbGUKQEAgLTIyLDYgKzIyLDcg QEAgSU5TVEFMTF9TQklOLSQoQ09ORklHX1g4NikgICAgICs9IHhlbi1odm1jcmFzaAogSU5TVEFM TF9TQklOLSQoQ09ORklHX1g4NikgICAgICs9IHhlbi1odm1jdHgKIElOU1RBTExfU0JJTi0kKENP TkZJR19YODYpICAgICArPSB4ZW4tbG93bWVtZAogSU5TVEFMTF9TQklOLSQoQ09ORklHX1g4Nikg ICAgICs9IHhlbi1tZm5kdW1wCitJTlNUQUxMX1NCSU4tJChDT05GSUdfWDg2KSAgICAgKz0geGVu bWljcm9jb2RlCiBJTlNUQUxMX1NCSU4gICAgICAgICAgICAgICAgICAgKz0geGVuLXRtZW0tbGlz dC1wYXJzZQogSU5TVEFMTF9TQklOICAgICAgICAgICAgICAgICAgICs9IHhlbmNvdgogSU5TVEFM TF9TQklOICAgICAgICAgICAgICAgICAgICs9IHhlbmxvY2twcm9mCkBAIC0xMTQsNCArMTE1LDcg QEAgeGVuLWxvd21lbWQ6IHhlbi1sb3dtZW1kLm8KIHhlbmNvdjogeGVuY292Lm8KIAkkKENDKSAk KExERkxBR1MpIC1vICRAICQ8ICQoTERMSUJTX2xpYnhlbmN0cmwpICQoQVBQRU5EX0xERkxBR1Mp CiAKK3hlbm1pY3JvY29kZTogeGVubWljcm9jb2RlLm8KKwkkKENDKSAkKExERkxBR1MpIC1vICRA ICQ8ICQoTERMSUJTX2xpYnhlbmN0cmwpICQoQVBQRU5EX0xERkxBR1MpCisKIC1pbmNsdWRlICQo REVQU19JTkNMVURFKQpkaWZmIC0tZ2l0IGEvdG9vbHMvbWlzYy94ZW5taWNyb2NvZGUuYyBiL3Rv b2xzL21pc2MveGVubWljcm9jb2RlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZTZjOGEzZAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL21pc2MveGVubWljcm9jb2RlLmMK QEAgLTAsMCArMSw4OSBAQAorI2RlZmluZSBfR05VX1NPVVJDRQorCisjaW5jbHVkZSA8c3RkaW8u aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUg PGVycm5vLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8aW50dHlwZXMuaD4KKyNp bmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMv c3RhdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8eGVuY3RybC5oPgorCit2b2lk IHNob3dfaGVscCh2b2lkKQoreworICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgInhl bm1pY3JvY29kZTogWGVuIG1pY3JvY29kZSB1cGRhdGluZyB0b29sXG4iCisgICAgICAgICAgICAi VXNhZ2U6IHhlbm1pY3JvY29kZSA8bWljcm9jb2RlIGJsb2I+XG4iKTsKK30KKworaW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgICBpbnQgZmQsIGxlbiwgcmV0OworICAgIGNo YXIgKmZpbGVuYW1lLCAqYnVmOworICAgIHN0cnVjdCBzdGF0IHN0OworICAgIHN0cnVjdCB4ZW5f cGxhdGZvcm1fb3Agb3A7CisgICAgeGNfaW50ZXJmYWNlICp4Y2g7CisgICAgREVDTEFSRV9IWVBF UkNBTExfQlVGRkVSKHN0cnVjdCB4ZW5wZl9taWNyb2NvZGVfdXBkYXRlLCB1Yyk7CisKKyAgICBp ZiAoYXJnYyA8IDIpCisgICAgeworICAgICAgICBzaG93X2hlbHAoKTsKKyAgICAgICAgcmV0dXJu IDA7CisgICAgfQorCisgICAgZmlsZW5hbWUgPSBhcmd2WzFdOworICAgIGZkID0gb3BlbihmaWxl bmFtZSwgT19SRE9OTFkpOworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgZnByaW50ZihzdGRl cnIsICJDb3VsZCBub3Qgb3BlbiAlcy4gKGVycjogJXMpXG4iLAorICAgICAgICAgICAgICAgIGZp bGVuYW1lLCBzdHJlcnJvcihlcnJubykpOworICAgICAgICByZXR1cm4gZXJybm87CisgICAgfQor CisgICAgaWYgKHN0YXQoZmlsZW5hbWUsICZzdCkgIT0gMCkgeworICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIkNvdWxkIG5vdCBnZXQgdGhlIHNpemUgb2YgJXMuIChlcnI6ICVzKVxuIiwKKyAgICAg ICAgICAgICAgICBmaWxlbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKyAgICAgICAgcmV0dXJuIGVy cm5vOworICAgIH0KKworICAgIGxlbiA9IHN0LnN0X3NpemU7CisgICAgYnVmID0gbW1hcCgwLCBs ZW4sIFBST1RfUkVBRCwgTUFQX1BSSVZBVEUsIGZkLCAwKTsKKyAgICBpZiAoYnVmID09IE1BUF9G QUlMRUQpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJtbWFwIGZhaWxlZC4gKGVycm9yOiAl cylcbiIsIHN0cmVycm9yKGVycm5vKSk7CisgICAgICAgIHJldHVybiBlcnJubzsKKyAgICB9CisK KyAgICB4Y2ggPSB4Y19pbnRlcmZhY2Vfb3BlbigwLDAsMCk7CisgICAgaWYgKHhjaCA9PSBOVUxM KQorICAgIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciBvcGVuaW5nIHhjIGludGVy ZmFjZS4gKGVycjogJXMpXG4iLAorICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7Cisg ICAgICAgIHJldHVybiBlcnJubzsKKyAgICB9CisKKyAgICB1YyA9IHhjX2h5cGVyY2FsbF9idWZm ZXJfYWxsb2MoeGNoLCB1YywgbGVuKTsKKyAgICBpZiAodWMgPT0gTlVMTCkKKyAgICAgICAgcmV0 dXJuIC0xOworCisgICAgbWVtY3B5KHVjLCBidWYsIGxlbik7CisgICAgc2V0X3hlbl9ndWVzdF9o YW5kbGUob3AudS5taWNyb2NvZGUuZGF0YSwgdWMpOworICAgIG9wLmNtZCA9IFhFTlBGX21pY3Jv Y29kZV91cGRhdGU7CisgICAgb3AuaW50ZXJmYWNlX3ZlcnNpb24gPSBYRU5QRl9JTlRFUkZBQ0Vf VkVSU0lPTjsKKyAgICBvcC51Lm1pY3JvY29kZS5sZW5ndGggPSBsZW47CisgICAgcmV0ID0geGNf cGxhdGZvcm1fb3AoeGNoLCAmb3ApOworICAgIGlmICggcmV0ICkKKyAgICAgICAgZnByaW50Zihz dGRlcnIsICJGYWlsZWQgdG8gdXBkYXRlIG1pY3JvY29kZS4gKGVycjogJWQpXG4iLCByZXQpOwor CisgICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwgdWMpOworICAgIHhjX2ludGVyZmFj ZV9jbG9zZSh4Y2gpOworCisgICAgaWYgKG11bm1hcChidWYsIGxlbikpIHsKKyAgICAgICAgcHJp bnRmKCJDb3VsZCBub3QgdW5tYXA6ICVkKCVzKVxuIiwgZXJybm8sIHN0cmVycm9yKGVycm5vKSk7 CisgICAgICAgIHJldHVybiBlcnJubzsKKyAgICB9CisgICAgY2xvc2UoZmQpOworCisgICAgcmV0 dXJuIDA7Cit9Ci0tIAoxLjguMy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA==