From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v3 01/26] ARM: GICv3 ITS: parse and store ITS subnodes from hardware DT Date: Fri, 31 Mar 2017 19:05:00 +0100 Message-ID: <20170331180525.30038-2-andre.przywara@arm.com> References: <20170331180525.30038-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cu0tY-0005Ez-NQ for xen-devel@lists.xenproject.org; Fri, 31 Mar 2017 18:03:32 +0000 In-Reply-To: <20170331180525.30038-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: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org UGFyc2UgdGhlIERUIEdJQyBzdWJub2RlcyB0byBmaW5kIGV2ZXJ5IElUUyBNU0kgY29udHJvbGxl ciB0aGUgaGFyZHdhcmUKb2ZmZXJzLiBTdG9yZSB0aGF0IGluZm9ybWF0aW9uIGluIGEgbGlzdCB0 byBib3RoIHByb3BhZ2F0ZSBhbGwgb2YgdGhlbQpsYXRlciB0byBEb20wLCBidXQgYWxzbyB0byBi ZSBhYmxlIHRvIGl0ZXJhdGUgb3ZlciBhbGwgSVRTZXMuClRoaXMgaW50cm9kdWNlcyBhbiBJVFMg S2NvbmZpZyBvcHRpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6 eXdhcmFAYXJtLmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAgICB8ICA0 ICsrKwogeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgfCAgMSArCiB4ZW4vYXJjaC9h cm0vZ2ljLXYzLWl0cy5jICAgICAgICB8IDczICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIHhlbi9hcmNoL2FybS9naWMtdjMuYyAgICAgICAgICAgIHwgMTAgKysrLS0t CiB4ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaCB8IDY3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0 cy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vS2NvbmZpZyBiL3hlbi9hcmNoL2FybS9LY29uZmln CmluZGV4IDJlMDIzZDEuLmJmNjRjNjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9LY29uZmln CisrKyBiL3hlbi9hcmNoL2FybS9LY29uZmlnCkBAIC00NSw2ICs0NSwxMCBAQCBjb25maWcgQUNQ SQogY29uZmlnIEhBU19HSUNWMwogCWJvb2wKIAorY29uZmlnIEhBU19JVFMKKyAgICAgICAgYm9v bCAiR0lDdjMgSVRTIE1TSSBjb250cm9sbGVyIHN1cHBvcnQiCisgICAgICAgIGRlcGVuZHMgb24g SEFTX0dJQ1YzCisKIGVuZG1lbnUKIAogbWVudSAiQVJNIGVycmF0YSB3b3JrYXJvdW5kIHZpYSB0 aGUgYWx0ZXJuYXRpdmUgZnJhbWV3b3JrIgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL01ha2Vm aWxlIGIveGVuL2FyY2gvYXJtL01ha2VmaWxlCmluZGV4IDdhZmI4YTMuLjU0ODYwZTAgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL2FybS9NYWtlZmlsZQorKysgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUK QEAgLTE4LDYgKzE4LDcgQEAgb2JqLSQoRUFSTFlfUFJJTlRLKSArPSBlYXJseV9wcmludGsubwog b2JqLXkgKz0gZ2ljLm8KIG9iai15ICs9IGdpYy12Mi5vCiBvYmotJChDT05GSUdfSEFTX0dJQ1Yz KSArPSBnaWMtdjMubworb2JqLSQoQ09ORklHX0hBU19JVFMpICs9IGdpYy12My1pdHMubwogb2Jq LXkgKz0gZ3Vlc3Rjb3B5Lm8KIG9iai15ICs9IGh2bS5vCiBvYmoteSArPSBpby5vCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL2dpYy12My1pdHMu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDU2ZTViCi0tLSAvZGV2L251 bGwKKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwpAQCAtMCwwICsxLDczIEBACisvKgor ICogeGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYworICoKKyAqIEFSTSBHSUN2MyBJbnRlcnJ1cHQg VHJhbnNsYXRpb24gU2VydmljZSAoSVRTKSBzdXBwb3J0CisgKgorICogQ29weXJpZ2h0IChDKSAy MDE2LDIwMTcgLSBBUk0gTHRkCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisg KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB1bmRlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSA8eGVuL2xpYi5oPgorI2luY2x1ZGUgPGFzbS9naWNf djNfZGVmcy5oPgorI2luY2x1ZGUgPGFzbS9naWNfdjNfaXRzLmg+CisKK0xJU1RfSEVBRChob3N0 X2l0c19saXN0KTsKKworYm9vbCBnaWN2M19pdHNfaG9zdF9oYXNfaXRzKHZvaWQpCit7CisgICAg cmV0dXJuICFsaXN0X2VtcHR5KCZob3N0X2l0c19saXN0KTsKK30KKworLyogU2NhbiB0aGUgRFQg Zm9yIGFueSBJVFMgbm9kZXMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgaG9zdCBJVFNlcyBvdXQgb2Yg aXQuICovCit2b2lkIGdpY3YzX2l0c19kdF9pbml0KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9k ZSAqbm9kZSkKK3sKKyAgICBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKml0cyA9IE5VTEw7 CisgICAgc3RydWN0IGhvc3RfaXRzICppdHNfZGF0YTsKKworICAgIC8qCisgICAgICogQ2hlY2sg Zm9yIElUUyBNU0kgc3Vibm9kZXMuIElmIGFueSwgYWRkIHRoZSBJVFMgcmVnaXN0ZXIKKyAgICAg KiBmcmFtZXMgdG8gdGhlIElUUyBsaXN0LgorICAgICAqLworICAgIGR0X2Zvcl9lYWNoX2NoaWxk X25vZGUobm9kZSwgaXRzKQorICAgIHsKKyAgICAgICAgdWludDY0X3QgYWRkciwgc2l6ZTsKKwor ICAgICAgICBpZiAoICFkdF9kZXZpY2VfaXNfY29tcGF0aWJsZShpdHMsICJhcm0sZ2ljLXYzLWl0 cyIpICkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmICggZHRfZGV2aWNlX2dl dF9hZGRyZXNzKGl0cywgMCwgJmFkZHIsICZzaXplKSApCisgICAgICAgICAgICBwYW5pYygiR0lD djM6IENhbm5vdCBmaW5kIGEgdmFsaWQgSVRTIGZyYW1lIGFkZHJlc3MiKTsKKworICAgICAgICBp dHNfZGF0YSA9IHh6YWxsb2Moc3RydWN0IGhvc3RfaXRzKTsKKyAgICAgICAgaWYgKCAhaXRzX2Rh dGEgKQorICAgICAgICAgICAgcGFuaWMoIkdJQ3YzOiBDYW5ub3QgYWxsb2NhdGUgbWVtb3J5IGZv ciBJVFMgZnJhbWUiKTsKKworICAgICAgICBpdHNfZGF0YS0+YWRkciA9IGFkZHI7CisgICAgICAg IGl0c19kYXRhLT5zaXplID0gc2l6ZTsKKyAgICAgICAgaXRzX2RhdGEtPmR0X25vZGUgPSBpdHM7 CisKKyAgICAgICAgcHJpbnRrKCJHSUN2MzogRm91bmQgSVRTIEAweCVseFxuIiwgYWRkcik7CisK KyAgICAgICAgbGlzdF9hZGRfdGFpbCgmaXRzX2RhdGEtPmVudHJ5LCAmaG9zdF9pdHNfbGlzdCk7 CisgICAgfQorfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1m aWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIGluZGVudC10YWJzLW1v ZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMg Yi94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMKaW5kZXggOTU1NTkxYi4uMTUxMjUyMSAxMDA2NDQKLS0t IGEveGVuL2FyY2gvYXJtL2dpYy12My5jCisrKyBiL3hlbi9hcmNoL2FybS9naWMtdjMuYwpAQCAt NDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPGFzbS9kZXZpY2UuaD4KICNpbmNsdWRlIDxhc20vZ2lj Lmg+CiAjaW5jbHVkZSA8YXNtL2dpY192M19kZWZzLmg+CisjaW5jbHVkZSA8YXNtL2dpY192M19p dHMuaD4KICNpbmNsdWRlIDxhc20vY3B1ZmVhdHVyZS5oPgogI2luY2x1ZGUgPGFzbS9hY3BpLmg+ CiAKQEAgLTEyMjgsMTEgKzEyMjksMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IGdpY3YzX2R0X2lu aXQodm9pZCkKICAgICAgKi8KICAgICByZXMgPSBkdF9kZXZpY2VfZ2V0X2FkZHJlc3Mobm9kZSwg MSArIGdpY3YzLnJkaXN0X2NvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm Y2Jhc2UsICZjc2l6ZSk7Ci0gICAgaWYgKCByZXMgKQotICAgICAgICByZXR1cm47CisgICAgaWYg KCAhcmVzICkKKyAgICAgICAgZHRfZGV2aWNlX2dldF9hZGRyZXNzKG5vZGUsIDEgKyBnaWN2My5y ZGlzdF9jb3VudCArIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmJhc2UsICZ2 c2l6ZSk7CiAKLSAgICBkdF9kZXZpY2VfZ2V0X2FkZHJlc3Mobm9kZSwgMSArIGdpY3YzLnJkaXN0 X2NvdW50ICsgMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJnZiYXNlLCAmdnNpemUpOwor ICAgIC8qIENoZWNrIGZvciBJVFMgY2hpbGQgbm9kZXMgYW5kIGJ1aWxkIHRoZSBob3N0IElUUyBs aXN0IGFjY29yZGluZ2x5LiAqLworICAgIGdpY3YzX2l0c19kdF9pbml0KG5vZGUpOwogfQogCiBz dGF0aWMgaW50IGdpY3YzX2lvbWVtX2RlbnlfYWNjZXNzKGNvbnN0IHN0cnVjdCBkb21haW4gKmQp CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaCBiL3hlbi9pbmNs dWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjc2NWE2NTUKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192 M19pdHMuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQVJNIEdJQ3YzIElUUyBzdXBwb3J0Cisg KgorICogQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+CisgKiBDb3B5cmln aHQgKGMpIDIwMTYsMjAxNyBBUk0gTHRkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdW5kZXIgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUk1fSVRTX0hfXworI2RlZmlu ZSBfX0FTTV9BUk1fSVRTX0hfXworCisjaW5jbHVkZSA8eGVuL2RldmljZV90cmVlLmg+CisKKy8q IGRhdGEgc3RydWN0dXJlIGZvciBlYWNoIGhhcmR3YXJlIElUUyAqLworc3RydWN0IGhvc3RfaXRz IHsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGVudHJ5OworICAgIGNvbnN0IHN0cnVjdCBkdF9kZXZp Y2Vfbm9kZSAqZHRfbm9kZTsKKyAgICBwYWRkcl90IGFkZHI7CisgICAgcGFkZHJfdCBzaXplOwor fTsKKworCisjaWZkZWYgQ09ORklHX0hBU19JVFMKKworZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQg aG9zdF9pdHNfbGlzdDsKKworLyogUGFyc2UgdGhlIGhvc3QgRFQgYW5kIHBpY2sgdXAgYWxsIGhv c3QgSVRTZXMuICovCit2b2lkIGdpY3YzX2l0c19kdF9pbml0KGNvbnN0IHN0cnVjdCBkdF9kZXZp Y2Vfbm9kZSAqbm9kZSk7CisKK2Jvb2wgZ2ljdjNfaXRzX2hvc3RfaGFzX2l0cyh2b2lkKTsKKwor I2Vsc2UKKworc3RhdGljIExJU1RfSEVBRChob3N0X2l0c19saXN0KTsKKworc3RhdGljIGlubGlu ZSB2b2lkIGdpY3YzX2l0c19kdF9pbml0KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9k ZSkKK3sKK30KKworc3RhdGljIGlubGluZSBib29sIGdpY3YzX2l0c19ob3N0X2hhc19pdHModm9p ZCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfSEFTX0lUUyAq LworCisjZW5kaWYKKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMt ZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiBpbmRlbnQtdGFicy1t b2RlOiBuaWwKKyAqIEVuZDoKKyAqLwotLSAKMi45LjAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK