From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v2 20/27] ARM: vITS: handle MAPTI command Date: Thu, 16 Mar 2017 11:20:23 +0000 Message-ID: <20170316112030.20419-21-andre.przywara@arm.com> References: <20170316112030.20419-1-andre.przywara@arm.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 1coTR6-00088U-Oi for xen-devel@lists.xenproject.org; Thu, 16 Mar 2017 11:19:16 +0000 In-Reply-To: <20170316112030.20419-1-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini , Julien Grall Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org VGhlIE1BUFRJIGNvbW1hbmRzIGFzc29jaWF0ZXMgYSBEZXZpY2VJRC9FdmVudElEIHBhaXIgd2l0 aCBhIExQSS9DUFUKcGFpciBhbmQgYWN0dWFsbHkgaW5zdGFudGlhdGVzIExQSSBpbnRlcnJ1cHRz LgpXZSBjb25uZWN0IHRoZSBhbHJlYWR5IGFsbG9jYXRlZCBob3N0IExQSSB0byB0aGlzIHZpcnR1 YWwgTFBJLCBzbyB0aGF0CmFueSB0cmlnZ2VyaW5nIElSUSBvbiB0aGUgaG9zdCBjYW4gYmUgcXVp Y2tseSBmb3J3YXJkZWQgdG8gYSBndWVzdC4KClNpZ25lZC1vZmYtYnk6IEFuZHJlIFByenl3YXJh IDxhbmRyZS5wcnp5d2FyYUBhcm0uY29tPgotLS0KIHhlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMg ICAgICAgIHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVu L2FyY2gvYXJtL2dpYy12My1scGkuYyAgICAgICAgfCAxOCArKysrKysrKysrKysKIHhlbi9hcmNo L2FybS92Z2ljLXYzLWl0cy5jICAgICAgIHwgMjcgKysrKysrKysrKysrKysrLS0KIHhlbi9pbmNs dWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oIHwgIDYgKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMTIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v Z2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwppbmRleCA1YTJkYmVjLi5l MmZjZjUwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jCisrKyBiL3hlbi9h cmNoL2FybS9naWMtdjMtaXRzLmMKQEAgLTcyNCw2ICs3MjQsNjkgQEAgcmVzdGFydDoKICAgICBz cGluX3VubG9jaygmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzX2xvY2spOwogfQogCisvKgorICog VHJhbnNsYXRlcyBhbiBldmVudCBmb3IgYSBnaXZlbiBndWVzdCBkZXZpY2UgSUQgaW50byB0aGUg YXNzb2NpYXRlZCBob3N0CisgKiBMUEkgbnVtYmVyLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGxvb2sg dXAgdGhlIG1hcHBlZCBndWVzdCBMUEkuCisgKi8KK3N0YXRpYyB1aW50MzJfdCB0cmFuc2xhdGVf ZXZlbnQoc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBkb29yYmVsbCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGV2aWQsIHVpbnQzMl90IGV2ZW50aWQpCit7Cisg ICAgc3RydWN0IHJiX25vZGUgKm5vZGU7CisgICAgc3RydWN0IGl0c19kZXZpY2VzICpkZXY7Cisg ICAgdWludDMyX3QgaG9zdF9scGkgPSAwOworICAgIGludCBjbXA7CisKKyAgICBzcGluX2xvY2so JmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2NrKTsKKyAgICBub2RlID0gZC0+YXJjaC52Z2lj Lml0c19kZXZpY2VzLnJiX25vZGU7CisgICAgd2hpbGUgKG5vZGUpCisgICAgeworICAgICAgICBk ZXYgPSByYl9lbnRyeShub2RlLCBzdHJ1Y3QgaXRzX2RldmljZXMsIHJibm9kZSk7CisgICAgICAg IGNtcCA9IGNvbXBhcmVfaXRzX2d1ZXN0X2RldmljZXMoZGV2LCBkb29yYmVsbCwgZGV2aWQpOwor CisgICAgICAgIGlmICggIWNtcCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggZXZlbnRp ZCA+PSBkZXYtPmV2ZW50aWRzICkKKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKworICAgICAg ICAgICAgaG9zdF9scGkgPSBkZXYtPmhvc3RfbHBpc1tldmVudGlkIC8gTFBJX0JMT0NLXSArCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChldmVudGlkICUgTFBJX0JMT0NLKTsKKyAg ICAgICAgICAgIGlmICggIWlzX2xwaShob3N0X2xwaSkgKQorICAgICAgICAgICAgICAgIGhvc3Rf bHBpID0gMDsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAgaWYg KCBjbXAgPiAwICkKKyAgICAgICAgICAgIG5vZGUgPSBub2RlLT5yYl9sZWZ0OworICAgICAgICBl bHNlCisgICAgICAgICAgICBub2RlID0gbm9kZS0+cmJfcmlnaHQ7CisgICAgfQorCitvdXQ6Cisg ICAgc3Bpbl91bmxvY2soJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2NrKTsKKworICAgIHJl dHVybiBob3N0X2xwaTsKK30KKworLyoKKyAqIENvbm5lY3RzIHRoZSBldmVudCBJRCBmb3IgYW4g YWxyZWFkeSBhc3NpZ25lZCBkZXZpY2UgdG8gdGhlIGdpdmVuIFZDUFUvdkxQSQorICogcGFpci4g VGhlIGNvcnJlc3BvbmRpbmcgcGh5c2ljYWwgTFBJIGlzIGFscmVhZHkgbWFwcGVkIG9uIHRoZSBo b3N0IHNpZGUKKyAqICh3aGVuIGFzc2lnbmluZyB0aGUgcGh5c2ljYWwgZGV2aWNlIHRvIHRoZSBn dWVzdCksIHNvIHdlIGp1c3QgY29ubmVjdCB0aGUKKyAqIHRhcmdldCBWQ1BVL3ZMUEkgcGFpciB0 byB0aGF0IGludGVycnVwdCB0byBpbmplY3QgaXQgcHJvcGVybHkgaWYgaXQgZmlyZXMuCisgKi8K K2ludCBnaWN2M19hc3NpZ25fZ3Vlc3RfZXZlbnQoc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBk b29yYmVsbF9hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBk ZXZpZCwgdWludDMyX3QgZXZlbnRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHZjcHUgKnYsIHVpbnQzMl90IHZpcnRfbHBpKQoreworICAgIHVpbnQzMl90IGhvc3RfbHBp ID0gdHJhbnNsYXRlX2V2ZW50KGQsIGRvb3JiZWxsX2FkZHJlc3MsIGRldmlkLCBldmVudGlkKTsK KworICAgIGlmICggIWhvc3RfbHBpICkKKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAgICBn aWN2M19scGlfdXBkYXRlX2hvc3RfZW50cnkoaG9zdF9scGksIGQtPmRvbWFpbl9pZCwgdi0+dmNw dV9pZCwgdmlydF9scGkpOworCisgICAgcmV0dXJuIDA7Cit9CisKIC8qIFNjYW4gdGhlIERUIGZv ciBhbnkgSVRTIG5vZGVzIGFuZCBjcmVhdGUgYSBsaXN0IG9mIGhvc3QgSVRTZXMgb3V0IG9mIGl0 LiAqLwogdm9pZCBnaWN2M19pdHNfZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUg Km5vZGUpCiB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jIGIveGVuL2Fy Y2gvYXJtL2dpYy12My1scGkuYwppbmRleCA5OTQ2OThlLi5jMTEwZWM5IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jCisrKyBiL3hlbi9hcmNoL2FybS9naWMtdjMtbHBpLmMK QEAgLTE1Myw2ICsxNTMsMjQgQEAgdm9pZCBkb19MUEkodW5zaWduZWQgaW50IGxwaSkKICAgICB2 Z2ljX3ZjcHVfaW5qZWN0X2lycSh2Y3B1LCBobHBpLnZpcnRfbHBpKTsKIH0KIAoraW50IGdpY3Yz X2xwaV91cGRhdGVfaG9zdF9lbnRyeSh1aW50MzJfdCBob3N0X2xwaSwgaW50IGRvbWFpbl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZjcHVfaWQsIHVp bnQzMl90IHZpcnRfbHBpKQoreworICAgIHVuaW9uIGhvc3RfbHBpICpobHBpcCwgaGxwaTsKKwor ICAgIGhvc3RfbHBpIC09IExQSV9PRkZTRVQ7CisKKyAgICBobHBpcCA9ICZscGlfZGF0YS5ob3N0 X2xwaXNbaG9zdF9scGkgLyBIT1NUX0xQSVNfUEVSX1BBR0VdW2hvc3RfbHBpICUgSE9TVF9MUElT X1BFUl9QQUdFXTsKKworICAgIGhscGkudmlydF9scGkgPSB2aXJ0X2xwaTsKKyAgICBobHBpLmRv bV9pZCA9IGRvbWFpbl9pZDsKKyAgICBobHBpLnZjcHVfaWQgPSB2Y3B1X2lkOworCisgICAgd3Jp dGVfdTY0X2F0b21pYygmaGxwaXAtPmRhdGEsIGhscGkuZGF0YSk7CisKKyAgICByZXR1cm4gMDsK K30KKwogc3RhdGljIGludCBnaWN2M19scGlfYWxsb2NhdGVfcGVuZHRhYmxlKHVpbnQ2NF90ICpy ZWcpCiB7CiAgICAgdWludDY0X3QgdmFsOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMt djMtaXRzLmMgYi94ZW4vYXJjaC9hcm0vdmdpYy12My1pdHMuYwppbmRleCBjMjZkNWQ0Li42MDBm ZjY5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy12My1pdHMuYworKysgYi94ZW4vYXJj aC9hcm0vdmdpYy12My1pdHMuYwpAQCAtMTY3LDggKzE2Nyw4IEBAIHN0YXRpYyBib29sIHJlYWRf aXR0ZShzdHJ1Y3QgdmlydF9pdHMgKml0cywgdWludDMyX3QgZGV2aWQsIHVpbnQzMl90IGV2aWQs CiB9CiAKICNkZWZpbmUgU0tJUF9MUElfVVBEQVRFIDEKLWJvb2wgd3JpdGVfaXR0ZShzdHJ1Y3Qg dmlydF9pdHMgKml0cywgdWludDMyX3QgZGV2aWQsIHVpbnQzMl90IGV2aWQsCi0gICAgICAgICAg ICAgICAgdWludDMyX3QgY29sbGlkLCB1aW50MzJfdCB2bHBpLCBzdHJ1Y3QgdmNwdSAqKnZjcHUp CitzdGF0aWMgYm9vbCB3cml0ZV9pdHRlKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLCB1aW50MzJfdCBk ZXZpZCwgdWludDMyX3QgZXZpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY29s bGlkLCB1aW50MzJfdCB2bHBpLCBzdHJ1Y3QgdmNwdSAqKnZjcHUpCiB7CiAgICAgc3RydWN0IHZp dHNfaXR0ZSAqaXR0ZTsKIApAQCAtMzMyLDYgKzMzMiwyNSBAQCBzdGF0aWMgaW50IGl0c19oYW5k bGVfbWFwZChzdHJ1Y3QgdmlydF9pdHMgKml0cywgdWludDY0X3QgKmNtZHB0cikKICAgICByZXR1 cm4gMDsKIH0KIAorc3RhdGljIGludCBpdHNfaGFuZGxlX21hcHRpKHN0cnVjdCB2aXJ0X2l0cyAq aXRzLCB1aW50NjRfdCAqY21kcHRyKQoreworICAgIHVpbnQzMl90IGRldmlkID0gaXRzX2NtZF9n ZXRfZGV2aWNlaWQoY21kcHRyKTsKKyAgICB1aW50MzJfdCBldmVudGlkID0gaXRzX2NtZF9nZXRf aWQoY21kcHRyKTsKKyAgICB1aW50MzJfdCBpbnRpZCA9IGl0c19jbWRfZ2V0X3BoeXNpY2FsX2lk KGNtZHB0cik7CisgICAgaW50IGNvbGxpZCA9IGl0c19jbWRfZ2V0X2NvbGxlY3Rpb24oY21kcHRy KTsKKyAgICBzdHJ1Y3QgdmNwdSAqdmNwdTsKKworICAgIGlmICggaXRzX2NtZF9nZXRfY29tbWFu ZChjbWRwdHIpID09IEdJVFNfQ01EX01BUEkgKQorICAgICAgICBpbnRpZCA9IGV2ZW50aWQ7CisK KyAgICBpZiAoICF3cml0ZV9pdHRlKGl0cywgZGV2aWQsIGV2ZW50aWQsIGNvbGxpZCwgaW50aWQs ICZ2Y3B1KSApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGdpY3YzX2Fzc2lnbl9ndWVzdF9l dmVudChpdHMtPmQsIGl0cy0+ZG9vcmJlbGxfYWRkcmVzcywgZGV2aWQsIGV2ZW50aWQsIHZjcHUs IGludGlkKTsKKworICAgIHJldHVybiAwOworfQorCiAjZGVmaW5lIElUU19DTURfQlVGRkVSX1NJ WkUoYmFzZXIpICAgICAgKCgoKGJhc2VyKSAmIDB4ZmYpICsgMSkgPDwgMTIpCiAKIHN0YXRpYyBp bnQgdmdpY19pdHNfaGFuZGxlX2NtZHMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZpcnRfaXRz ICppdHMsCkBAIC0zNjQsNiArMzgzLDEwIEBAIHN0YXRpYyBpbnQgdmdpY19pdHNfaGFuZGxlX2Nt ZHMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZpcnRfaXRzICppdHMsCiAgICAgICAgIGNhc2Ug R0lUU19DTURfTUFQRDoKICAgICAgICAgICAgIGl0c19oYW5kbGVfbWFwZChpdHMsIGNtZHB0cik7 CiAJICAgIGJyZWFrOworICAgICAgICBjYXNlIEdJVFNfQ01EX01BUEk6CisgICAgICAgIGNhc2Ug R0lUU19DTURfTUFQVEk6CisgICAgICAgICAgICBpdHNfaGFuZGxlX21hcHRpKGl0cywgY21kcHRy KTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdJVFNfQ01EX1NZTkM6CiAgICAg ICAgICAgICAvKiBXZSBoYW5kbGUgSVRTIGNvbW1hbmRzIHN5bmNocm9ub3VzbHksIHNvIHdlIGln bm9yZSBTWU5DLiAqLwogCSAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1h cm0vZ2ljX3YzX2l0cy5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKaW5kZXgg MjM4Nzk3Mi4uMWVhMDBlOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNf aXRzLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKQEAgLTE2Myw2ICsx NjMsMTIgQEAgaW50IGdpY3YzX2FsbG9jYXRlX2hvc3RfbHBpX2Jsb2NrKHN0cnVjdCBob3N0X2l0 cyAqaXRzLCBzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IGhvc3RfZGV2aWQsIHVpbnQzMl90IGV2ZW50aWQpOwogaW50IGdpY3YzX2Zy ZWVfaG9zdF9scGlfYmxvY2soc3RydWN0IGhvc3RfaXRzICppdHMsIHVpbnQzMl90IGxwaSk7CiAK K2ludCBnaWN2M19hc3NpZ25fZ3Vlc3RfZXZlbnQoc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBk b29yYmVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGV2aWQsIHVp bnQzMl90IGV2ZW50aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2Y3B1 ICp2LCB1aW50MzJfdCB2aXJ0X2xwaSk7CitpbnQgZ2ljdjNfbHBpX3VwZGF0ZV9ob3N0X2VudHJ5 KHVpbnQzMl90IGhvc3RfbHBpLCBpbnQgZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgdmNwdV9pZCwgdWludDMyX3QgdmlydF9scGkpOworCiAj ZWxzZQogCiBzdGF0aWMgTElTVF9IRUFEKGhvc3RfaXRzX2xpc3QpOwotLSAKMi45LjAKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK