From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shannon Zhao Subject: [PATCH v6 06/17] Xen: ARM: Add support for mapping platform device mmio Date: Thu, 17 Mar 2016 17:57:05 +0800 Message-ID: <1458208636-12960-7-git-send-email-zhaoshenglong@huawei.com> References: <1458208636-12960-1-git-send-email-zhaoshenglong@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458208636-12960-1-git-send-email-zhaoshenglong@huawei.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: linux-arm-kernel@lists.infradead.org, ard.biesheuvel@linaro.org, stefano.stabellini@citrix.com, david.vrabel@citrix.com Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, linux-efi@vger.kernel.org, ian.campbell@citrix.com, catalin.marinas@arm.com, will.deacon@arm.com, linux-kernel@vger.kernel.org, xen-devel@lists.xen.org, julien.grall@arm.com, shannon.zhao@linaro.org, peter.huangpeng@huawei.com List-Id: xen-devel@lists.xenproject.org RnJvbTogU2hhbm5vbiBaaGFvIDxzaGFubm9uLnpoYW9AbGluYXJvLm9yZz4KCkFkZCBhIGJ1c19u b3RpZmllciBmb3IgcGxhdGZvcm0gYnVzIGRldmljZSBpbiBvcmRlciB0byBtYXAgdGhlIGRldmlj ZQptbWlvIHJlZ2lvbnMgd2hlbiBET00wIGJvb3Rpbmcgd2l0aCBBQ1BJLgoKU2lnbmVkLW9mZi1i eTogU2hhbm5vbiBaaGFvIDxzaGFubm9uLnpoYW9AbGluYXJvLm9yZz4KQWNrZWQtYnk6IFN0ZWZh bm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5pQGV1LmNpdHJpeC5jb20+Ci0tLQogZHJp dmVycy94ZW4vTWFrZWZpbGUgICAgIHwgICAxICsKIGRyaXZlcnMveGVuL2FybS1kZXZpY2UuYyB8 IDE0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBm aWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMveGVuL2FybS1kZXZpY2UuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL01ha2VmaWxlIGIv ZHJpdmVycy94ZW4vTWFrZWZpbGUKaW5kZXggOWI3YTM1Yy4uNDE1ZjI4NiAxMDA2NDQKLS0tIGEv ZHJpdmVycy94ZW4vTWFrZWZpbGUKKysrIGIvZHJpdmVycy94ZW4vTWFrZWZpbGUKQEAgLTksNiAr OSw3IEBAIENGTEFHU19mZWF0dXJlcy5vCQkJOj0gJChub3N0YWNrcCkKIAogQ0ZMQUdTX2VmaS5v CQkJCSs9IC1mc2hvcnQtd2NoYXIKIAorZG9tMC0kKENPTkZJR19BUk02NCkgKz0gYXJtLWRldmlj ZS5vCiBkb20wLSQoQ09ORklHX1BDSSkgKz0gcGNpLm8KIGRvbTAtJChDT05GSUdfVVNCX1NVUFBP UlQpICs9IGRiZ3AubwogZG9tMC0kKENPTkZJR19YRU5fQUNQSSkgKz0gYWNwaS5vICQoeGVuLXBh ZC15KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vYXJtLWRldmljZS5jIGIvZHJpdmVycy94ZW4v YXJtLWRldmljZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2ZTI2ZTUK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3hlbi9hcm0tZGV2aWNlLmMKQEAgLTAsMCArMSwx NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUsIExpbmFybyBMaW1pdGVkLCBTaGFubm9u IFpoYW8KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAqIHZlcnNpb24gMiwg YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBi dXQgV0lUSE9VVAorICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3Jl IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNs dWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Cisj aW5jbHVkZSA8eGVuL3hlbi5oPgorI2luY2x1ZGUgPHhlbi9wYWdlLmg+CisjaW5jbHVkZSA8eGVu L2ludGVyZmFjZS9tZW1vcnkuaD4KKyNpbmNsdWRlIDxhc20veGVuL2h5cGVydmlzb3IuaD4KKyNp bmNsdWRlIDxhc20veGVuL2h5cGVyY2FsbC5oPgorCitzdGF0aWMgaW50IHhlbl91bm1hcF9kZXZp Y2VfbW1pbyhzdHJ1Y3QgcmVzb3VyY2UgKnJlc291cmNlLCB1bnNpZ25lZCBpbnQgY291bnQpCit7 CisJdW5zaWduZWQgaW50IGksIGosIG5yOworCWludCByYyA9IDA7CisJc3RydWN0IHJlc291cmNl ICpyOworCXN0cnVjdCB4ZW5fcmVtb3ZlX2Zyb21fcGh5c21hcCB4cnA7CisKKwlmb3IgKGkgPSAw OyBpIDwgY291bnQ7IGkrKykgeworCQlyID0gJnJlc291cmNlW2ldOworCQluciA9IERJVl9ST1VO RF9VUChyZXNvdXJjZV9zaXplKHIpLCBYRU5fUEFHRV9TSVpFKTsKKwkJaWYgKChyZXNvdXJjZV90 eXBlKHIpICE9IElPUkVTT1VSQ0VfTUVNKSB8fCAobnIgPT0gMCkpCisJCQljb250aW51ZTsKKwor CQlmb3IgKGogPSAwOyBqIDwgbnI7IGorKykgeworCQkJeHJwLmRvbWlkID0gRE9NSURfU0VMRjsK KwkJCXhycC5ncGZuID0gWEVOX1BGTl9ET1dOKHItPnN0YXJ0KSArIGo7CisJCQlyYyA9IEhZUEVS VklTT1JfbWVtb3J5X29wKFhFTk1FTV9yZW1vdmVfZnJvbV9waHlzbWFwLAorCQkJCQkJICAmeHJw KTsKKwkJCWlmIChyYykKKwkJCQlyZXR1cm4gcmM7CisJCX0KKwl9CisKKwlyZXR1cm4gcmM7Cit9 CisKK3N0YXRpYyBpbnQgeGVuX21hcF9kZXZpY2VfbW1pbyhzdHJ1Y3QgcmVzb3VyY2UgKnJlc291 cmNlLCB1bnNpZ25lZCBpbnQgY291bnQpCit7CisJdW5zaWduZWQgaW50IGksIGosIG5yOworCWlu dCByYyA9IDA7CisJc3RydWN0IHJlc291cmNlICpyOworCXhlbl9wZm5fdCAqZ3BmbnM7CisJeGVu X3Vsb25nX3QgKmlkeHM7CisJaW50ICplcnJzOworCXN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXBf cmFuZ2UgeGF0cDsKKworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisJCXIgPSAmcmVz b3VyY2VbaV07CisJCW5yID0gRElWX1JPVU5EX1VQKHJlc291cmNlX3NpemUociksIFhFTl9QQUdF X1NJWkUpOworCQlpZiAoKHJlc291cmNlX3R5cGUocikgIT0gSU9SRVNPVVJDRV9NRU0pIHx8IChu ciA9PSAwKSkKKwkJCWNvbnRpbnVlOworCisJCWdwZm5zID0ga3phbGxvYyhzaXplb2YoeGVuX3Bm bl90KSAqIG5yLCBHRlBfS0VSTkVMKTsKKwkJaWR4cyA9IGt6YWxsb2Moc2l6ZW9mKHhlbl91bG9u Z190KSAqIG5yLCBHRlBfS0VSTkVMKTsKKwkJZXJycyA9IGt6YWxsb2Moc2l6ZW9mKGludCkgKiBu ciwgR0ZQX0tFUk5FTCk7CisJCWlmICghZ3BmbnMgfHwgIWlkeHMgfHwgIWVycnMpIHsKKwkJCWtm cmVlKGdwZm5zKTsKKwkJCWtmcmVlKGlkeHMpOworCQkJa2ZyZWUoZXJycyk7CisJCQlyZXR1cm4g LUVOT01FTTsKKwkJfQorCisJCWZvciAoaiA9IDA7IGogPCBucjsgaisrKSB7CisJCQlncGZuc1tq XSA9IFhFTl9QRk5fRE9XTihyLT5zdGFydCkgKyBqOworCQkJaWR4c1tqXSA9IFhFTl9QRk5fRE9X TihyLT5zdGFydCkgKyBqOworCQl9CisKKwkJeGF0cC5kb21pZCA9IERPTUlEX1NFTEY7CisJCXhh dHAuc2l6ZSA9IG5yOworCQl4YXRwLnNwYWNlID0gWEVOTUFQU1BBQ0VfZGV2X21taW87CisKKwkJ c2V0X3hlbl9ndWVzdF9oYW5kbGUoeGF0cC5ncGZucywgZ3BmbnMpOworCQlzZXRfeGVuX2d1ZXN0 X2hhbmRsZSh4YXRwLmlkeHMsIGlkeHMpOworCQlzZXRfeGVuX2d1ZXN0X2hhbmRsZSh4YXRwLmVy cnMsIGVycnMpOworCisJCXJjID0gSFlQRVJWSVNPUl9tZW1vcnlfb3AoWEVOTUVNX2FkZF90b19w aHlzbWFwX3JhbmdlLCAmeGF0cCk7CisJCWtmcmVlKGdwZm5zKTsKKwkJa2ZyZWUoaWR4cyk7CisJ CWtmcmVlKGVycnMpOworCQlpZiAocmMpCisJCQlyZXR1cm4gcmM7CisJfQorCisJcmV0dXJuIHJj OworfQorCitzdGF0aWMgaW50IHhlbl9wbGF0Zm9ybV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJf YmxvY2sgKm5iLAorCQkJCSB1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqZGF0YSkKK3sKKwlz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRhdGEpOwor CWludCByID0gMDsKKworCWlmIChwZGV2LT5udW1fcmVzb3VyY2VzID09IDAgfHwgcGRldi0+cmVz b3VyY2UgPT0gTlVMTCkKKwkJcmV0dXJuIE5PVElGWV9PSzsKKworCXN3aXRjaCAoYWN0aW9uKSB7 CisJY2FzZSBCVVNfTk9USUZZX0FERF9ERVZJQ0U6CisJCXIgPSB4ZW5fbWFwX2RldmljZV9tbWlv KHBkZXYtPnJlc291cmNlLCBwZGV2LT5udW1fcmVzb3VyY2VzKTsKKwkJYnJlYWs7CisJY2FzZSBC VVNfTk9USUZZX0RFTF9ERVZJQ0U6CisJCXIgPSB4ZW5fdW5tYXBfZGV2aWNlX21taW8ocGRldi0+ cmVzb3VyY2UsIHBkZXYtPm51bV9yZXNvdXJjZXMpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQly ZXR1cm4gTk9USUZZX0RPTkU7CisJfQorCWlmIChyKQorCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJQ bGF0Zm9ybTogRmFpbGVkIHRvICVzIGRldmljZSAlcyBNTUlPIVxuIiwKKwkJCWFjdGlvbiA9PSBC VVNfTk9USUZZX0FERF9ERVZJQ0UgPyAibWFwIiA6CisJCQkoYWN0aW9uID09IEJVU19OT1RJRllf REVMX0RFVklDRSA/ICJ1bm1hcCIgOiAiPyIpLAorCQkJcGRldi0+bmFtZSk7CisKKwlyZXR1cm4g Tk9USUZZX09LOworfQorCitzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHBsYXRmb3JtX2Rl dmljZV9uYiA9IHsKKwkubm90aWZpZXJfY2FsbCA9IHhlbl9wbGF0Zm9ybV9ub3RpZmllciwKK307 CisKK3N0YXRpYyBpbnQgX19pbml0IHJlZ2lzdGVyX3hlbl9wbGF0Zm9ybV9ub3RpZmllcih2b2lk KQoreworCWlmICgheGVuX2luaXRpYWxfZG9tYWluKCkgfHwgYWNwaV9kaXNhYmxlZCkKKwkJcmV0 dXJuIDA7CisKKwlyZXR1cm4gYnVzX3JlZ2lzdGVyX25vdGlmaWVyKCZwbGF0Zm9ybV9idXNfdHlw ZSwgJnBsYXRmb3JtX2RldmljZV9uYik7Cit9CisKK2FyY2hfaW5pdGNhbGwocmVnaXN0ZXJfeGVu X3BsYXRmb3JtX25vdGlmaWVyKTsKLS0gCjIuMC40CgoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==