From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: [RFC PATCH v1 7/7] iommu/arm: ipmmu-vmsa: Enable VMSAv8-64 mode if IPMMU HW supports it Date: Wed, 26 Jul 2017 18:10:04 +0300 Message-ID: <1501081804-4882-8-git-send-email-olekstysh@gmail.com> References: <1501081804-4882-1-git-send-email-olekstysh@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1daNxD-0008SY-QZ for xen-devel@lists.xenproject.org; Wed, 26 Jul 2017 15:10:27 +0000 Received: by mail-lf0-f68.google.com with SMTP id 65so2764635lfa.0 for ; Wed, 26 Jul 2017 08:10:26 -0700 (PDT) In-Reply-To: <1501081804-4882-1-git-send-email-olekstysh@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Oleksandr Tyshchenko , Julien Grall , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKVGhlIHBhdGNoIHdhcyBwb3J0ZWQgZnJvbSBSRkMgcGF0Y2ggZm9yIExpbnV4IGFuZApzbGln aHRseSBtb2RpZmllZCBpbiBvcmRlciB0byBoYW5kbGUgSU9WQSBzcGFjZSBhYm92ZSAzMi1iaXQu Cgppb21tdS9pcG1tdS12bXNhOiBJbml0aWFsIFItQ2FyIEdlbjMgVkE2NCBtb2RlIHN1cHBvcnQK aHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC85NTMyMzM1LwoKTW9kaWZpY2F0aW9u cyB0byB0aGUgb3JpZ2luYWwgcGF0Y2ggYXJlOgotIEluY3JlYXNlIElPVkEgc3BhY2UgZnJvbSAz Mi1iaXQgdG8gMzktYml0Ci0gUHJpbnQgZnVsbCBJT1ZBIGluIGNhc2Ugb2YgcGFnZSBmYXVsdAot IFNldHVwIFRUQlIxIGFzIHdlbGwgYXMgVFRCUjAKClNpZ25lZC1vZmYtYnk6IE9sZWtzYW5kciBU eXNoY2hlbmtvIDxvbGVrc2FuZHJfdHlzaGNoZW5rb0BlcGFtLmNvbT4KQ0M6IEp1bGllbiBHcmFs bCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNDOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxs aW5pQGtlcm5lbC5vcmc+Ci0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lwbW11LXZt c2EuYyB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNDEgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lwbW11LXZtc2EuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FybS9pcG1tdS12bXNhLmMKaW5kZXggMmEwNDgwMC4uMjExY2UzOSAxMDA2NDQKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lwbW11LXZtc2EuYworKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hcm0vaXBtbXUtdm1zYS5jCkBAIC0yMjAsNiArMjIwLDcgQEAgc3RydWN0 IGlwbW11X2ZlYXR1cmVzIHsKIAlib29sIGhhc19laWdodF9jdHg7CiAJYm9vbCBzZXR1cF9pbWJ1 c2NyOwogCWJvb2wgdHdvYml0X2ltdHRiY3Jfc2wwOworCWJvb2wgaW1jdHJfdmE2NDsKIH07CiAK ICNpZmRlZiBDT05GSUdfUkNBUl9ERFJfQkFDS1VQCkBAIC0zMzQsNiArMzM1LDcgQEAgc3RhdGlj IHZvaWQgc2V0X2FyY2hkYXRhKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGlwbW11X3Ztc2Ff YXJjaGRhdGEgKnApCiAjZGVmaW5lIElNX0NUWF9TSVpFCQkJMHg0MAogCiAjZGVmaW5lIElNQ1RS CQkJCTB4MDAwMAorI2RlZmluZSBJTUNUUl9WQTY0CQkJKDEgPDwgMjkpCiAjZGVmaW5lIElNQ1RS X1RSRQkJCSgxIDw8IDE3KQogI2RlZmluZSBJTUNUUl9BRkUJCQkoMSA8PCAxNikKICNkZWZpbmUg SU1DVFJfUlRTRUxfTUFTSwkJKDMgPDwgNCkKQEAgLTM4MSw3ICszODMsNyBAQCBzdGF0aWMgdm9p ZCBzZXRfYXJjaGRhdGEoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaXBtbXVfdm1zYV9hcmNo ZGF0YSAqcCkKICNkZWZpbmUgSU1UVEJDUl9TTDBfTFZMXzIJCSgwIDw8IDQpCiAjZGVmaW5lIElN VFRCQ1JfU0wwX0xWTF8xCQkoMSA8PCA0KQogI2RlZmluZSBJTVRUQkNSX1RTWjBfTUFTSwkJKDcg PDwgMCkKLSNkZWZpbmUgSU1UVEJDUl9UU1owX1NISUZUCQlPCisjZGVmaW5lIElNVFRCQ1JfVFNa MF9TSElGVAkJMAogCiAjZGVmaW5lIElNVFRCQ1JfU0wwX1RXT0JJVF9MVkxfMwkoMCA8PCA2KQog I2RlZmluZSBJTVRUQkNSX1NMMF9UV09CSVRfTFZMXzIJKDEgPDwgNikKQEAgLTQyNCw2ICs0MjYs NyBAQCBzdGF0aWMgdm9pZCBzZXRfYXJjaGRhdGEoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg aXBtbXVfdm1zYV9hcmNoZGF0YSAqcCkKICNkZWZpbmUgSU1NQUlSX0FUVFJfSURYX0RFVgkJMgog CiAjZGVmaW5lIElNRUFSCQkJCTB4MDAzMAorI2RlZmluZSBJTUVVQVIJCQkJMHgwMDM0CiAKICNk ZWZpbmUgSU1QQ1RSCQkJCTB4MDIwMAogI2RlZmluZSBJTVBTVFIJCQkJMHgwMjA4CkBAIC03NzAs NyArNzczLDcgQEAgc3RhdGljIGludCBpcG1tdV9kb21haW5faW5pdF9jb250ZXh0KHN0cnVjdCBp cG1tdV92bXNhX2RvbWFpbiAqZG9tYWluKQogCSAqLwogCWRvbWFpbi0+Y2ZnLnF1aXJrcyA9IElP X1BHVEFCTEVfUVVJUktfQVJNX05TOwogCWRvbWFpbi0+Y2ZnLnBnc2l6ZV9iaXRtYXAgPSBTWl8x RyB8IFNaXzJNIHwgU1pfNEssCi0JZG9tYWluLT5jZmcuaWFzID0gMzI7CisJZG9tYWluLT5jZmcu aWFzID0gZG9tYWluLT5yb290LT5mZWF0dXJlcy0+aW1jdHJfdmE2NCA/IDM5IDogMzI7CiAJZG9t YWluLT5jZmcub2FzID0gNDA7CiAJZG9tYWluLT5jZmcudGxiID0gJmlwbW11X2dhdGhlcl9vcHM7 CiAjaWYgMCAvKiBYZW46IE5vdCBuZWVkZWQgKi8KQEAgLTc4Myw4ICs3ODYsOSBAQCBzdGF0aWMg aW50IGlwbW11X2RvbWFpbl9pbml0X2NvbnRleHQoc3RydWN0IGlwbW11X3Ztc2FfZG9tYWluICpk b21haW4pCiAJICovCiAJZG9tYWluLT5jZmcuaW9tbXVfZGV2ID0gZG9tYWluLT5yb290LT5kZXY7 CiAKLQlkb21haW4tPmlvcCA9IGFsbG9jX2lvX3BndGFibGVfb3BzKEFSTV8zMl9MUEFFX1MxLCAm ZG9tYWluLT5jZmcsCi0JCQkJCSAgIGRvbWFpbik7CisJZG9tYWluLT5pb3AgPSBhbGxvY19pb19w Z3RhYmxlX29wcyhkb21haW4tPnJvb3QtPmZlYXR1cmVzLT5pbWN0cl92YTY0ID8KKwkJCQkJICAg QVJNXzY0X0xQQUVfUzEgOiBBUk1fMzJfTFBBRV9TMSwKKwkJCQkJICAgJmRvbWFpbi0+Y2ZnLCBk b21haW4pOwogCWlmICghZG9tYWluLT5pb3ApCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC04MTgs NiArODIyLDE0IEBAIHN0YXRpYyBpbnQgaXBtbXVfZG9tYWluX2luaXRfY29udGV4dChzdHJ1Y3Qg aXBtbXVfdm1zYV9kb21haW4gKmRvbWFpbikKIAlpcG1tdV9jdHhfd3JpdGUoZG9tYWluLCBJTVRU VUJSMCwgdHRiciA+PiAzMik7CiAKIAkvKgorCSAqIFdpdGggZW5hYmxpbmcgSU1DVFJfVkE2NCB3 ZSBuZWVkIHRvIHNldHVwIFRUQlIxIGFzIHdlbGwKKwkgKi8KKwlpZiAoZG9tYWluLT5yb290LT5m ZWF0dXJlcy0+aW1jdHJfdmE2NCkgeworCQlpcG1tdV9jdHhfd3JpdGUoZG9tYWluLCBJTVRUTEJS MSwgdHRicik7CisJCWlwbW11X2N0eF93cml0ZShkb21haW4sIElNVFRVQlIxLCB0dGJyID4+IDMy KTsKKwl9CisKKwkvKgogCSAqIFRUQkNSCiAJICogV2UgdXNlIGxvbmcgZGVzY3JpcHRvcnMgd2l0 aCBpbm5lci1zaGFyZWFibGUgV0JXQSB0YWJsZXMgYW5kIGFsbG9jYXRlCiAJICogdGhlIHdob2xl IDMyLWJpdCBWQSBzcGFjZSB0byBUVEJSMC4KQEAgLTgyOCw2ICs4NDAsMTkgQEAgc3RhdGljIGlu dCBpcG1tdV9kb21haW5faW5pdF9jb250ZXh0KHN0cnVjdCBpcG1tdV92bXNhX2RvbWFpbiAqZG9t YWluKQogCWVsc2UKIAkJdG1wID0gSU1UVEJDUl9TTDBfTFZMXzE7CiAKKwkvKgorCSAqIEFzIHdl IGFyZSBnb2luZyB0byB1c2UgVFRCUjEgd2UgbmVlZCB0byBzZXR1cCBhdHRyaWJ1dGVzIGZvciB0 aGUgbWVtb3J5CisJICogYXNzb2NpYXRlZCB3aXRoIHRoZSB0cmFuc2xhdGlvbiB0YWJsZSB3YWxr cyB1c2luZyBUVEJSMS4KKwkgKiBBbHNvIGZvciB1c2luZyBJTUNUUl9WQTY0IG1vZGUgd2UgbmVl ZCB0byBjYWxjdWxhdGUgYW5kIHNldHVwCisJICogVFRCUjAvVFRCUjEgYWRkcmVzc2VkIHJlZ2lv bnMuCisJICovCisJaWYgKGRvbWFpbi0+cm9vdC0+ZmVhdHVyZXMtPmltY3RyX3ZhNjQpIHsKKwkJ dG1wIHw9IElNVFRCQ1JfU0gxX0lOTkVSX1NIQVJFQUJMRSB8IElNVFRCQ1JfT1JHTjFfV0JfV0Eg fAorCQkJCUlNVFRCQ1JfSVJHTjFfV0JfV0E7CisJCXRtcCB8PSAoNjRVTEwgLSBkb21haW4tPmNm Zy5pYXMpIDw8IElNVFRCQ1JfVFNaMF9TSElGVDsKKwkJdG1wIHw9ICg2NFVMTCAtIGRvbWFpbi0+ Y2ZnLmlhcykgPDwgSU1UVEJDUl9UU1oxX1NISUZUOworCX0KKwogCWlwbW11X2N0eF93cml0ZShk b21haW4sIElNVFRCQ1IsIElNVFRCQ1JfRUFFIHwKIAkJCUlNVFRCQ1JfU0gwX0lOTkVSX1NIQVJF QUJMRSB8IElNVFRCQ1JfT1JHTjBfV0JfV0EgfAogCQkJSU1UVEJDUl9JUkdOMF9XQl9XQSB8IHRt cCk7CkBAIC04NTUsNyArODgwLDggQEAgc3RhdGljIGludCBpcG1tdV9kb21haW5faW5pdF9jb250 ZXh0KHN0cnVjdCBpcG1tdV92bXNhX2RvbWFpbiAqZG9tYWluKQogCSAqIFhlbjogRW5hYmxlIHRo ZSBjb250ZXh0IGZvciB0aGUgcm9vdCBJUE1NVSBvbmx5LgogCSAqLwogCWlwbW11X2N0eF93cml0 ZShkb21haW4sIElNQ1RSLAotCQkJIElNQ1RSX0lOVEVOIHwgSU1DVFJfRkxVU0ggfCBJTUNUUl9N TVVFTik7CisJCQkgKGRvbWFpbi0+cm9vdC0+ZmVhdHVyZXMtPmltY3RyX3ZhNjQgPyBJTUNUUl9W QTY0IDogMCkKKwkJCSB8IElNQ1RSX0lOVEVOIHwgSU1DVFJfRkxVU0ggfCBJTUNUUl9NTVVFTik7 CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTkwOSwxMyArOTM1LDE0IEBAIHN0YXRpYyBpcnFyZXR1cm5f dCBpcG1tdV9kb21haW5faXJxKHN0cnVjdCBpcG1tdV92bXNhX2RvbWFpbiAqZG9tYWluKQogCWNv bnN0IHUzMiBlcnJfbWFzayA9IElNU1RSX01ISVQgfCBJTVNUUl9BQk9SVCB8IElNU1RSX1BGIHwg SU1TVFJfVEY7CiAJc3RydWN0IGlwbW11X3Ztc2FfZGV2aWNlICptbXUgPSBkb21haW4tPm1tdTsK IAl1MzIgc3RhdHVzOwotCXUzMiBpb3ZhOworCXU2NCBpb3ZhOwogCiAJc3RhdHVzID0gaXBtbXVf Y3R4X3JlYWQoZG9tYWluLCBJTVNUUik7CiAJaWYgKCEoc3RhdHVzICYgZXJyX21hc2spKQogCQly ZXR1cm4gSVJRX05PTkU7CiAKLQlpb3ZhID0gaXBtbXVfY3R4X3JlYWQoZG9tYWluLCBJTUVBUik7 CisJaW92YSA9IGlwbW11X2N0eF9yZWFkKGRvbWFpbiwgSU1FQVIpIHwKKwkJCSgodTY0KWlwbW11 X2N0eF9yZWFkKGRvbWFpbiwgSU1FVUFSKSA8PCAzMik7CiAKIAkvKgogCSAqIENsZWFyIHRoZSBl cnJvciBzdGF0dXMgZmxhZ3MuIFVubGlrZSB0cmFkaXRpb25hbCBpbnRlcnJ1cHQgZmxhZwpAQCAt OTI3LDEwICs5NTQsMTAgQEAgc3RhdGljIGlycXJldHVybl90IGlwbW11X2RvbWFpbl9pcnEoc3Ry dWN0IGlwbW11X3Ztc2FfZG9tYWluICpkb21haW4pCiAKIAkvKiBMb2cgZmF0YWwgZXJyb3JzLiAq LwogCWlmIChzdGF0dXMgJiBJTVNUUl9NSElUKQotCQlkZXZfZXJyX3JhdGVsaW1pdGVkKG1tdS0+ ZGV2LCAiZCVkOiBNdWx0aXBsZSBUTEIgaGl0cyBAMHglMDh4XG4iLAorCQlkZXZfZXJyX3JhdGVs aW1pdGVkKG1tdS0+ZGV2LCAiZCVkOiBNdWx0aXBsZSBUTEIgaGl0cyBAMHglIlBSSXg2NCJcbiIs CiAJCQkJZG9tYWluLT5kLT5kb21haW5faWQsIGlvdmEpOwogCWlmIChzdGF0dXMgJiBJTVNUUl9B Qk9SVCkKLQkJZGV2X2Vycl9yYXRlbGltaXRlZChtbXUtPmRldiwgImQlZDogUGFnZSBUYWJsZSBX YWxrIEFib3J0IEAweCUwOHhcbiIsCisJCWRldl9lcnJfcmF0ZWxpbWl0ZWQobW11LT5kZXYsICJk JWQ6IFBhZ2UgVGFibGUgV2FsayBBYm9ydCBAMHglIlBSSXg2NCJcbiIsCiAJCQkJZG9tYWluLT5k LT5kb21haW5faWQsIGlvdmEpOwogCiAJaWYgKCEoc3RhdHVzICYgKElNU1RSX1BGIHwgSU1TVFJf VEYpKSkKQEAgLTk0Niw3ICs5NzMsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaXBtbXVfZG9tYWlu X2lycShzdHJ1Y3QgaXBtbXVfdm1zYV9kb21haW4gKmRvbWFpbikKIAkJcmV0dXJuIElSUV9IQU5E TEVEOwogCiAJZGV2X2Vycl9yYXRlbGltaXRlZChtbXUtPmRldiwKLQkJCSJkJWQ6IFVuaGFuZGxl ZCBmYXVsdDogc3RhdHVzIDB4JTA4eCBpb3ZhIDB4JTA4eFxuIiwKKwkJCSJkJWQ6IFVuaGFuZGxl ZCBmYXVsdDogc3RhdHVzIDB4JTA4eCBpb3ZhIDB4JSJQUkl4NjQiXG4iLAogCQkJZG9tYWluLT5k LT5kb21haW5faWQsIHN0YXR1cywgaW92YSk7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CkBAIC0x MjE5LDggKzEyNDYsNyBAQCBzaXplX3QgaXBtbXVfdW5tYXAoc3RydWN0IGlvbW11X2RvbWFpbiAq aW9fZG9tYWluLCB1bnNpZ25lZCBsb25nIGlvdmEsIHNpemVfdCBzaQogCWlmICgoZG1hX2FkZHJf dClpb3ZhICsgc2l6ZSA+IG1heF9pb3ZhKSB7CiAJCXByaW50aygib3V0LW9mLWJvdW5kOiBpb3Zh IDB4JWx4ICsgc2l6ZSAweCV6eCA+IG1heF9pb3ZhIDB4JSJQUkl4NjQiXG4iLAogCQkJICAgaW92 YSwgc2l6ZSwgbWF4X2lvdmEpOwotCQkvKiBUT0RPIFJldHVybiAtRUlOVkFMIGluc3RlYWQgKi8K LQkJcmV0dXJuIDA7CisJCXJldHVybiAtRUlOVkFMOwogCX0KIAogCS8qCkBAIC0xMjc3LDggKzEz MDMsNyBAQCBpbnQgaXBtbXVfbWFwKHN0cnVjdCBpb21tdV9kb21haW4gKmlvX2RvbWFpbiwgdW5z aWduZWQgbG9uZyBpb3ZhLAogCWlmICgoZG1hX2FkZHJfdClpb3ZhICsgc2l6ZSA+IG1heF9pb3Zh KSB7CiAJCXByaW50aygib3V0LW9mLWJvdW5kOiBpb3ZhIDB4JWx4ICsgc2l6ZSAweCV6eCA+IG1h eF9pb3ZhIDB4JSJQUkl4NjQiXG4iLAogCQkgICAgICAgaW92YSwgc2l6ZSwgbWF4X2lvdmEpOwot CQkvKiBUT0RPIFJldHVybiAtRUlOVkFMIGluc3RlYWQgKi8KLQkJcmV0dXJuIDA7CisJCXJldHVy biAtRUlOVkFMOwogCX0KIAogCXdoaWxlIChzaXplKSB7CkBAIC0xNzI1LDYgKzE3NTAsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGlwbW11X2ZlYXR1cmVzIGlwbW11X2ZlYXR1cmVzX2RlZmF1bHQg PSB7CiAJLmhhc19laWdodF9jdHggPSBmYWxzZSwKIAkuc2V0dXBfaW1idXNjciA9IHRydWUsCiAJ LnR3b2JpdF9pbXR0YmNyX3NsMCA9IGZhbHNlLAorCS5pbWN0cl92YTY0ID0gZmFsc2UsCiB9Owog CiBzdGF0aWMgY29uc3Qgc3RydWN0IGlwbW11X2ZlYXR1cmVzIGlwbW11X2ZlYXR1cmVzX3JjYXJf Z2VuMyA9IHsKQEAgLTE3MzMsNiArMTc1OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaXBtbXVf ZmVhdHVyZXMgaXBtbXVfZmVhdHVyZXNfcmNhcl9nZW4zID0gewogCS5oYXNfZWlnaHRfY3R4ID0g dHJ1ZSwKIAkuc2V0dXBfaW1idXNjciA9IGZhbHNlLAogCS50d29iaXRfaW10dGJjcl9zbDAgPSB0 cnVlLAorCS5pbWN0cl92YTY0ID0gdHJ1ZSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkIGlwbW11X29mX2lkc1tdID0gewotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK