From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v7 09/11] xen: add capability to load initrd outside of initial mapping Date: Thu, 3 Mar 2016 10:38:14 +0100 Message-ID: <1456997896-14063-10-git-send-email-jgross__22235.5769285516$1456997975$gmane$org@suse.com> References: <1456997896-14063-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1456997896-14063-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: grub-devel@gnu.org Cc: Juergen Gross , phcoder@gmail.com, daniel.kiper@oracle.com, mchang@suse.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org TW9kZXJuIHB2b3BzIGxpbnV4IGtlcm5lbHMgc3VwcG9ydCBhbiBpbml0cmQgbm90IGNvdmVyZWQg YnkgdGhlIGluaXRpYWwKbWFwcGluZy4gVGhpcyBjYXBhYmlsaXR5IGlzIGZsYWdnZWQgYnkgYW4g ZWxmLW5vdGUuCgpJbiBjYXNlIHRoZSBlbGYtbm90ZSBpcyBzZXQgYnkgdGhlIGtlcm5lbCBkb24n dCBwbGFjZSB0aGUgaW5pdHJkIGludG8KdGhlIGluaXRpYWwgbWFwcGluZy4gVGhpcyB3aWxsIGFs bG93IHRvIGxvYWQgbGFyZ2VyIGluaXRyZHMgYW5kL29yCnN1cHBvcnQgZG9tYWlucyB3aXRoIGxh cmdlciBtZW1vcnksIGFzIHRoZSBpbml0aWFsIG1hcHBpbmcgaXMgbGltaXRlZAp0byAyR0IgYW5k IGl0IGlzIGNvbnRhaW5pbmcgdGhlIHAybSBsaXN0LgoKU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBH cm9zcyA8amdyb3NzQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwu a2lwZXJAb3JhY2xlLmNvbT4KLS0tClY3OiBzZXQgaW5pdHJkIHNpemUgb25jZSBpbnN0ZWFkIG9m IGluIGlmIGFuZCBlbHNlIGNsYXVzZSBhcyByZXF1ZXN0ZWQgYnkKICAgIERhbmllbCBLaXBlcgpW NjogcmVuYW1lIGdydWJfeGVuX2FsbG9jX2ZpbmFsKCkgdG8gZ3J1Yl94ZW5fYWxsb2NfYm9vdF9k YXRhKCkKVjU6IGxldCBjYWxsIGdydWJfeGVuX2FsbG9jX2ZpbmFsKCkgYWxsIHN1YmZ1bmN0aW9u cyB1bmNvbmRpdGlvbmFsbHkKICAgIGFuZCBsZXQgdGhlbSBkZWNpZGUgd2hldGhlciB0aGV5IG5l ZWQgdG8gZG8gYW55dGhpbmcKVjQ6IHJlbmFtZSBncnViX3hlbl9hbGxvY19lbmQoKSB0byBncnVi X3hlbl9hbGxvY19maW5hbCgpCi0tLQogZ3J1Yi1jb3JlL2xvYWRlci9pMzg2L3hlbi5jICAgICAg ICB8IDYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBncnViLWNvcmUv bG9hZGVyL2kzODYveGVuX2ZpbGVYWC5jIHwgIDMgKysKIGluY2x1ZGUvZ3J1Yi94ZW5fZmlsZS5o ICAgICAgICAgICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9sb2FkZXIvaTM4Ni94ZW4uYyBi L2dydWItY29yZS9sb2FkZXIvaTM4Ni94ZW4uYwppbmRleCAyZTEyNzYzLi45NjM5Y2ExIDEwMDY0 NAotLS0gYS9ncnViLWNvcmUvbG9hZGVyL2kzODYveGVuLmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRl ci9pMzg2L3hlbi5jCkBAIC0yMjgsNiArMjI4LDkgQEAgZ3J1Yl94ZW5fcDJtX2FsbG9jICh2b2lk KQogICBncnViX3NpemVfdCBwMm1zaXplOwogICBncnViX2Vycl90IGVycjsKIAorICBpZiAoeGVu X3N0YXRlLnZpcnRfbWZuX2xpc3QpCisgICAgcmV0dXJuIEdSVUJfRVJSX05PTkU7CisKICAgeGVu X3N0YXRlLnN0YXRlLm1mbl9saXN0ID0geGVuX3N0YXRlLm1heF9hZGRyOwogICB4ZW5fc3RhdGUu bmV4dF9zdGFydC5tZm5fbGlzdCA9CiAgICAgeGVuX3N0YXRlLm1heF9hZGRyICsgeGVuX3N0YXRl Lnhlbl9pbmYudmlydF9iYXNlOwpAQCAtMjUwLDYgKzI1Myw5IEBAIGdydWJfeGVuX3NwZWNpYWxf YWxsb2MgKHZvaWQpCiAgIGdydWJfcmVsb2NhdG9yX2NodW5rX3QgY2g7CiAgIGdydWJfZXJyX3Qg ZXJyOwogCisgIGlmICh4ZW5fc3RhdGUudmlydF9zdGFydF9pbmZvKQorICAgIHJldHVybiBHUlVC X0VSUl9OT05FOworCiAgIGVyciA9IGdydWJfcmVsb2NhdG9yX2FsbG9jX2NodW5rX2FkZHIgKHhl bl9zdGF0ZS5yZWxvY2F0b3IsICZjaCwKIAkJCQkJIHhlbl9zdGF0ZS5tYXhfYWRkciwKIAkJCQkJ IHNpemVvZiAoeGVuX3N0YXRlLm5leHRfc3RhcnQpKTsKQEAgLTI4MSw2ICsyODcsOSBAQCBncnVi X3hlbl9wdF9hbGxvYyAodm9pZCkKICAgZ3J1Yl91aW50NjRfdCBucl9pbmZvX3BhZ2VzOwogICBn cnViX3VpbnQ2NF90IG5yX3BhZ2VzLCBucl9wdF9wYWdlcywgbnJfbmVlZF9wYWdlczsKIAorICBp ZiAoeGVuX3N0YXRlLnZpcnRfcGd0YWJsZSkKKyAgICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKKwog ICB4ZW5fc3RhdGUubmV4dF9zdGFydC5wdF9iYXNlID0KICAgICB4ZW5fc3RhdGUubWF4X2FkZHIg KyB4ZW5fc3RhdGUueGVuX2luZi52aXJ0X2Jhc2U7CiAgIHhlbl9zdGF0ZS5zdGF0ZS5wYWdpbmdf c3RhcnQgPSB4ZW5fc3RhdGUubWF4X2FkZHIgPj4gUEFHRV9TSElGVDsKQEAgLTMxOSw2ICszMjgs MjUgQEAgZ3J1Yl94ZW5fcHRfYWxsb2MgKHZvaWQpCiAgIHJldHVybiBHUlVCX0VSUl9OT05FOwog fQogCisvKiBBbGxvY2F0ZSBhbGwgbm90IHlldCBhbGxvY2F0ZWQgYXJlYXMgbWFwcGVkIGJ5IGlu aXRpYWwgcGFnZSB0YWJsZXMuICovCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl94ZW5fYWxsb2Nf Ym9vdF9kYXRhICh2b2lkKQoreworICBncnViX2Vycl90IGVycjsKKworICBlcnIgPSBncnViX3hl bl9wMm1fYWxsb2MgKCk7CisgIGlmIChlcnIpCisgICAgcmV0dXJuIGVycjsKKyAgZXJyID0gZ3J1 Yl94ZW5fc3BlY2lhbF9hbGxvYyAoKTsKKyAgaWYgKGVycikKKyAgICByZXR1cm4gZXJyOworICBl cnIgPSBncnViX3hlbl9wdF9hbGxvYyAoKTsKKyAgaWYgKGVycikKKyAgICByZXR1cm4gZXJyOwor CisgIHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCiBzdGF0aWMgZ3J1Yl9lcnJfdAogZ3J1Yl94 ZW5fYm9vdCAodm9pZCkKIHsKQEAgLTMzMCwxMyArMzU4LDcgQEAgZ3J1Yl94ZW5fYm9vdCAodm9p ZCkKICAgaWYgKGdydWJfeGVuX25fYWxsb2NhdGVkX3NoYXJlZF9wYWdlcykKICAgICByZXR1cm4g Z3J1Yl9lcnJvciAoR1JVQl9FUlJfQlVHLCAiYWN0aXZlIGdyYW50cyIpOwogCi0gIGVyciA9IGdy dWJfeGVuX3AybV9hbGxvYyAoKTsKLSAgaWYgKGVycikKLSAgICByZXR1cm4gZXJyOwotICBlcnIg PSBncnViX3hlbl9zcGVjaWFsX2FsbG9jICgpOwotICBpZiAoZXJyKQotICAgIHJldHVybiBlcnI7 Ci0gIGVyciA9IGdydWJfeGVuX3B0X2FsbG9jICgpOworICBlcnIgPSBncnViX3hlbl9hbGxvY19i b290X2RhdGEgKCk7CiAgIGlmIChlcnIpCiAgICAgcmV0dXJuIGVycjsKIApAQCAtNjEwLDYgKzYz MiwxMyBAQCBncnViX2NtZF9pbml0cmQgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9f ICgodW51c2VkKSksCiAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCisgIGlmICh4ZW5fc3RhdGUu eGVuX2luZi51bm1hcHBlZF9pbml0cmQpCisgICAgeworICAgICAgZXJyID0gZ3J1Yl94ZW5fYWxs b2NfYm9vdF9kYXRhICgpOworICAgICAgaWYgKGVycikKKwlnb3RvIGZhaWw7CisgICAgfQorCiAg IGlmIChncnViX2luaXRyZF9pbml0IChhcmdjLCBhcmd2LCAmaW5pdHJkX2N0eCkpCiAgICAgZ290 byBmYWlsOwogCkBAIC02MjcsMTQgKzY1NiwyMiBAQCBncnViX2NtZF9pbml0cmQgKGdydWJfY29t bWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCiAJZ290byBmYWlsOwogICAgIH0K IAotICB4ZW5fc3RhdGUubmV4dF9zdGFydC5tb2Rfc3RhcnQgPQotICAgIHhlbl9zdGF0ZS5tYXhf YWRkciArIHhlbl9zdGF0ZS54ZW5faW5mLnZpcnRfYmFzZTsKICAgeGVuX3N0YXRlLm5leHRfc3Rh cnQubW9kX2xlbiA9IHNpemU7CiAKLSAgeGVuX3N0YXRlLm1heF9hZGRyID0gQUxJR05fVVAgKHhl bl9zdGF0ZS5tYXhfYWRkciArIHNpemUsIFBBR0VfU0laRSk7CisgIGlmICh4ZW5fc3RhdGUueGVu X2luZi51bm1hcHBlZF9pbml0cmQpCisgICAgeworICAgICAgeGVuX3N0YXRlLm5leHRfc3RhcnQu ZmxhZ3MgfD0gU0lGX01PRF9TVEFSVF9QRk47CisgICAgICB4ZW5fc3RhdGUubmV4dF9zdGFydC5t b2Rfc3RhcnQgPSB4ZW5fc3RhdGUubWF4X2FkZHIgPj4gUEFHRV9TSElGVDsKKyAgICB9CisgIGVs c2UKKyAgICB4ZW5fc3RhdGUubmV4dF9zdGFydC5tb2Rfc3RhcnQgPQorICAgICAgeGVuX3N0YXRl Lm1heF9hZGRyICsgeGVuX3N0YXRlLnhlbl9pbmYudmlydF9iYXNlOwogCiAgIGdydWJfZHByaW50 ZiAoInhlbiIsICJJbml0cmQsIGFkZHI9MHgleCwgc2l6ZT0weCV4XG4iLAotCQkodW5zaWduZWQp IHhlbl9zdGF0ZS5uZXh0X3N0YXJ0Lm1vZF9zdGFydCwgKHVuc2lnbmVkKSBzaXplKTsKKwkJKHVu c2lnbmVkKSAoeGVuX3N0YXRlLm1heF9hZGRyICsgeGVuX3N0YXRlLnhlbl9pbmYudmlydF9iYXNl KSwKKwkJKHVuc2lnbmVkKSBzaXplKTsKKworICB4ZW5fc3RhdGUubWF4X2FkZHIgPSBBTElHTl9V UCAoeGVuX3N0YXRlLm1heF9hZGRyICsgc2l6ZSwgUEFHRV9TSVpFKTsKIAogZmFpbDoKICAgZ3J1 Yl9pbml0cmRfY2xvc2UgKCZpbml0cmRfY3R4KTsKQEAgLTY4Niw2ICs3MjMsNyBAQCBncnViX2Nt ZF9tb2R1bGUgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCiAK ICAgaWYgKCF4ZW5fc3RhdGUubW9kdWxlX2luZm9fcGFnZSkKICAgICB7CisgICAgICB4ZW5fc3Rh dGUueGVuX2luZi51bm1hcHBlZF9pbml0cmQgPSAwOwogICAgICAgeGVuX3N0YXRlLm5fbW9kdWxl cyA9IDA7CiAgICAgICB4ZW5fc3RhdGUubWF4X2FkZHIgPSBBTElHTl9VUCAoeGVuX3N0YXRlLm1h eF9hZGRyLCBQQUdFX1NJWkUpOwogICAgICAgeGVuX3N0YXRlLm1vZHVsZXNfdGFyZ2V0X3N0YXJ0 ID0geGVuX3N0YXRlLm1heF9hZGRyOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xvYWRlci9pMzg2 L3hlbl9maWxlWFguYyBiL2dydWItY29yZS9sb2FkZXIvaTM4Ni94ZW5fZmlsZVhYLmMKaW5kZXgg MDMyMTVjYS4uODc1MTE3NCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xvYWRlci9pMzg2L3hlbl9m aWxlWFguYworKysgYi9ncnViLWNvcmUvbG9hZGVyL2kzODYveGVuX2ZpbGVYWC5jCkBAIC0yNjEs NiArMjYxLDkgQEAgcGFyc2Vfbm90ZSAoZ3J1Yl9lbGZfdCBlbGYsIHN0cnVjdCBncnViX3hlbl9m aWxlX2luZm8gKnhpLAogCQkJCQkgIGRlc2NzeiA9PSAyID8gMiA6IDMpID09IDApCiAJICAgIHhp LT5hcmNoID0gR1JVQl9YRU5fRklMRV9JMzg2OwogCSAgYnJlYWs7CisJY2FzZSBYRU5fRUxGTk9U RV9NT0RfU1RBUlRfUEZOOgorCSAgeGktPnVubWFwcGVkX2luaXRyZCA9ICEhZ3J1Yl9sZV90b19j cHUzMigqKGdydWJfdWludDMyX3QgKikgZGVzYyk7CisJICBicmVhazsKIAlkZWZhdWx0OgogCSAg Z3J1Yl9kcHJpbnRmICgieGVuIiwgInVua25vd24gbm90ZSB0eXBlICVkXG4iLCBuaC0+bl90eXBl KTsKIAkgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL3hlbl9maWxlLmggYi9pbmNs dWRlL2dydWIveGVuX2ZpbGUuaAppbmRleCA0YjJjY2JhLi5lZDc0OWZhIDEwMDY0NAotLS0gYS9p bmNsdWRlL2dydWIveGVuX2ZpbGUuaAorKysgYi9pbmNsdWRlL2dydWIveGVuX2ZpbGUuaApAQCAt MzYsNiArMzYsNyBAQCBzdHJ1Y3QgZ3J1Yl94ZW5fZmlsZV9pbmZvCiAgIGludCBoYXNfbm90ZTsK ICAgaW50IGhhc194ZW5fZ3Vlc3Q7CiAgIGludCBleHRlbmRlZF9jcjM7CisgIGludCB1bm1hcHBl ZF9pbml0cmQ7CiAgIGVudW0KICAgewogICAgIEdSVUJfWEVOX0ZJTEVfSTM4NiA9IDEsCi0tIAoy LjYuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==