From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v4 01/27] ARM: GICv3 ITS: parse and store ITS subnodes from hardware DT Date: Mon, 3 Apr 2017 21:28:03 +0100 Message-ID: <20170403202829.7278-2-andre.przywara@arm.com> References: <20170403202829.7278-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 1cv8Yd-0004tB-E3 for xen-devel@lists.xenproject.org; Mon, 03 Apr 2017 20:26:35 +0000 In-Reply-To: <20170403202829.7278-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 List-Id: xen-devel@lists.xenproject.org UGFyc2UgdGhlIERUIEdJQyBzdWJub2RlcyB0byBmaW5kIGV2ZXJ5IElUUyBNU0kgY29udHJvbGxl ciB0aGUgaGFyZHdhcmUKb2ZmZXJzLiBTdG9yZSB0aGF0IGluZm9ybWF0aW9uIGluIGEgbGlzdCB0 byBib3RoIHByb3BhZ2F0ZSBhbGwgb2YgdGhlbQpsYXRlciB0byBEb20wLCBidXQgYWxzbyB0byBi ZSBhYmxlIHRvIGl0ZXJhdGUgb3ZlciBhbGwgSVRTZXMuClRoaXMgaW50cm9kdWNlcyBhbiBJVFMg S2NvbmZpZyBvcHRpb24uCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6 eXdhcmFAYXJtLmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0vS2NvbmZpZyAgICAgICAgICAgICB8ICA1 ICsrKwogeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgfCAgMSArCiB4ZW4vYXJjaC9h cm0vZ2ljLXYzLWl0cy5jICAgICAgICB8IDc3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIHhlbi9hcmNoL2FybS9naWMtdjMuYyAgICAgICAgICAgIHwgMTAgKysrLS0t CiB4ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaCB8IDY3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTU2IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2dpYy12My1pdHMu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL0tjb25maWcgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZwpp bmRleCA0MzEyM2U2Li5kNDZiOThjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vS2NvbmZpZwor KysgYi94ZW4vYXJjaC9hcm0vS2NvbmZpZwpAQCAtNDUsNiArNDUsMTEgQEAgY29uZmlnIEFDUEkK IGNvbmZpZyBIQVNfR0lDVjMKIAlib29sCiAKK2NvbmZpZyBIQVNfSVRTCisgICAgICAgIGJvb2wK KyAgICAgICAgcHJvbXB0ICJHSUN2MyBJVFMgTVNJIGNvbnRyb2xsZXIgc3VwcG9ydCIgaWYgRVhQ RVJUID0gInkiCisgICAgICAgIGRlcGVuZHMgb24gSEFTX0dJQ1YzCisKIGVuZG1lbnUKIAogbWVu dSAiQVJNIGVycmF0YSB3b3JrYXJvdW5kIHZpYSB0aGUgYWx0ZXJuYXRpdmUgZnJhbWV3b3JrIgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL01ha2VmaWxlIGIveGVuL2FyY2gvYXJtL01ha2VmaWxl CmluZGV4IDBjZTk0YTguLjM5YzBhMDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9NYWtlZmls ZQorKysgYi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKQEAgLTE4LDYgKzE4LDcgQEAgb2JqLSQoRUFS TFlfUFJJTlRLKSArPSBlYXJseV9wcmludGsubwogb2JqLXkgKz0gZ2ljLm8KIG9iai15ICs9IGdp Yy12Mi5vCiBvYmotJChDT05GSUdfSEFTX0dJQ1YzKSArPSBnaWMtdjMubworb2JqLSQoQ09ORklH X0hBU19JVFMpICs9IGdpYy12My1pdHMubwogb2JqLXkgKz0gZ3Vlc3Rjb3B5Lm8KIG9iai15ICs9 IGh2bS5vCiBvYmoteSArPSBpby5vCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0 cy5jIGIveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi42YjAyMzQ5Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL2FyY2gvYXJtL2dpYy12 My1pdHMuYwpAQCAtMCwwICsxLDc3IEBACisvKgorICogeGVuL2FyY2gvYXJtL2dpYy12My1pdHMu YworICoKKyAqIEFSTSBHSUN2MyBJbnRlcnJ1cHQgVHJhbnNsYXRpb24gU2VydmljZSAoSVRTKSBz dXBwb3J0CisgKgorICogQ29weXJpZ2h0IChDKSAyMDE2LDIwMTcgLSBBUk0gTHRkCisgKgorICog VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyB1bmRlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCisgKgorICogVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisjaW5jbHVkZSA8 eGVuL2xpYi5oPgorI2luY2x1ZGUgPGFzbS9naWNfdjNfZGVmcy5oPgorI2luY2x1ZGUgPGFzbS9n aWNfdjNfaXRzLmg+CisKKy8qCisgKiBObyBsb2NrIGhlcmUsIGFzIHRoaXMgbGlzdCBnZXRzIG9u bHkgcG9wdWxhdGVkIHVwb24gYm9vdCB3aGlsZSBzY2FubmluZworICogZmlybXdhcmUgdGFibGVz IGZvciBhbGwgaG9zdCBJVFNlcywgYW5kIG9ubHkgZ2V0cyBpdGVyYXRlZCBhZnRlcndhcmRzLgor ICovCitMSVNUX0hFQUQoaG9zdF9pdHNfbGlzdCk7CisKK2Jvb2wgZ2ljdjNfaXRzX2hvc3RfaGFz X2l0cyh2b2lkKQoreworICAgIHJldHVybiAhbGlzdF9lbXB0eSgmaG9zdF9pdHNfbGlzdCk7Cit9 CisKKy8qIFNjYW4gdGhlIERUIGZvciBhbnkgSVRTIG5vZGVzIGFuZCBjcmVhdGUgYSBsaXN0IG9m IGhvc3QgSVRTZXMgb3V0IG9mIGl0LiAqLwordm9pZCBnaWN2M19pdHNfZHRfaW5pdChjb25zdCBz dHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpCit7CisgICAgY29uc3Qgc3RydWN0IGR0X2Rldmlj ZV9ub2RlICppdHMgPSBOVUxMOworICAgIHN0cnVjdCBob3N0X2l0cyAqaXRzX2RhdGE7CisKKyAg ICAvKgorICAgICAqIENoZWNrIGZvciBJVFMgTVNJIHN1Ym5vZGVzLiBJZiBhbnksIGFkZCB0aGUg SVRTIHJlZ2lzdGVyCisgICAgICogZnJhbWVzIHRvIHRoZSBJVFMgbGlzdC4KKyAgICAgKi8KKyAg ICBkdF9mb3JfZWFjaF9jaGlsZF9ub2RlKG5vZGUsIGl0cykKKyAgICB7CisgICAgICAgIHVpbnQ2 NF90IGFkZHIsIHNpemU7CisKKyAgICAgICAgaWYgKCAhZHRfZGV2aWNlX2lzX2NvbXBhdGlibGUo aXRzLCAiYXJtLGdpYy12My1pdHMiKSApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg ICBpZiAoIGR0X2RldmljZV9nZXRfYWRkcmVzcyhpdHMsIDAsICZhZGRyLCAmc2l6ZSkgKQorICAg ICAgICAgICAgcGFuaWMoIkdJQ3YzOiBDYW5ub3QgZmluZCBhIHZhbGlkIElUUyBmcmFtZSBhZGRy ZXNzIik7CisKKyAgICAgICAgaXRzX2RhdGEgPSB4emFsbG9jKHN0cnVjdCBob3N0X2l0cyk7Cisg ICAgICAgIGlmICggIWl0c19kYXRhICkKKyAgICAgICAgICAgIHBhbmljKCJHSUN2MzogQ2Fubm90 IGFsbG9jYXRlIG1lbW9yeSBmb3IgSVRTIGZyYW1lIik7CisKKyAgICAgICAgaXRzX2RhdGEtPmFk ZHIgPSBhZGRyOworICAgICAgICBpdHNfZGF0YS0+c2l6ZSA9IHNpemU7CisgICAgICAgIGl0c19k YXRhLT5kdF9ub2RlID0gaXRzOworCisgICAgICAgIHByaW50aygiR0lDdjM6IEZvdW5kIElUUyBA MHglbHhcbiIsIGFkZHIpOworCisgICAgICAgIGxpc3RfYWRkX3RhaWwoJml0c19kYXRhLT5lbnRy eSwgJmhvc3RfaXRzX2xpc3QpOworICAgIH0KK30KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoK KyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0 CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVu L2FyY2gvYXJtL2dpYy12My5jIGIveGVuL2FyY2gvYXJtL2dpYy12My5jCmluZGV4IDY5NWYwMWYu LmI2MjYyOTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMuYworKysgYi94ZW4vYXJj aC9hcm0vZ2ljLXYzLmMKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlIDxhc20vZGV2aWNlLmg+ CiAjaW5jbHVkZSA8YXNtL2dpYy5oPgogI2luY2x1ZGUgPGFzbS9naWNfdjNfZGVmcy5oPgorI2lu Y2x1ZGUgPGFzbS9naWNfdjNfaXRzLmg+CiAjaW5jbHVkZSA8YXNtL2NwdWZlYXR1cmUuaD4KICNp bmNsdWRlIDxhc20vYWNwaS5oPgogCkBAIC0xMjI3LDExICsxMjI4LDEyIEBAIHN0YXRpYyB2b2lk IF9faW5pdCBnaWN2M19kdF9pbml0KHZvaWQpCiAgICAgICovCiAgICAgcmVzID0gZHRfZGV2aWNl X2dldF9hZGRyZXNzKG5vZGUsIDEgKyBnaWN2My5yZGlzdF9jb3VudCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmNiYXNlLCAmY3NpemUpOwotICAgIGlmICggcmVzICkKLSAgICAg ICAgcmV0dXJuOworICAgIGlmICggIXJlcyApCisgICAgICAgIGR0X2RldmljZV9nZXRfYWRkcmVz cyhub2RlLCAxICsgZ2ljdjMucmRpc3RfY291bnQgKyAyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnZiYXNlLCAmdnNpemUpOwogCi0gICAgZHRfZGV2aWNlX2dldF9hZGRyZXNzKG5v ZGUsIDEgKyBnaWN2My5yZGlzdF9jb3VudCArIDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICZ2YmFzZSwgJnZzaXplKTsKKyAgICAvKiBDaGVjayBmb3IgSVRTIGNoaWxkIG5vZGVzIGFuZCBi dWlsZCB0aGUgaG9zdCBJVFMgbGlzdCBhY2NvcmRpbmdseS4gKi8KKyAgICBnaWN2M19pdHNfZHRf aW5pdChub2RlKTsKIH0KIAogc3RhdGljIGludCBnaWN2M19pb21lbV9kZW55X2FjY2Vzcyhjb25z dCBzdHJ1Y3QgZG9tYWluICpkKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9naWNf djNfaXRzLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjVhNjU1Ci0tLSAvZGV2L251bGwKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIEFSTSBH SUN2MyBJVFMgc3VwcG9ydAorICoKKyAqIEFuZHJlIFByenl3YXJhIDxhbmRyZS5wcnp5d2FyYUBh cm0uY29tPgorICogQ29weXJpZ2h0IChjKSAyMDE2LDIwMTcgQVJNIEx0ZC4KKyAqCisgKiBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IHVuZGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpZm5kZWYgX19BU01f QVJNX0lUU19IX18KKyNkZWZpbmUgX19BU01fQVJNX0lUU19IX18KKworI2luY2x1ZGUgPHhlbi9k ZXZpY2VfdHJlZS5oPgorCisvKiBkYXRhIHN0cnVjdHVyZSBmb3IgZWFjaCBoYXJkd2FyZSBJVFMg Ki8KK3N0cnVjdCBob3N0X2l0cyB7CisgICAgc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKKyAgICBj b25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmR0X25vZGU7CisgICAgcGFkZHJfdCBhZGRyOwor ICAgIHBhZGRyX3Qgc2l6ZTsKK307CisKKworI2lmZGVmIENPTkZJR19IQVNfSVRTCisKK2V4dGVy biBzdHJ1Y3QgbGlzdF9oZWFkIGhvc3RfaXRzX2xpc3Q7CisKKy8qIFBhcnNlIHRoZSBob3N0IERU IGFuZCBwaWNrIHVwIGFsbCBob3N0IElUU2VzLiAqLwordm9pZCBnaWN2M19pdHNfZHRfaW5pdChj b25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpOworCitib29sIGdpY3YzX2l0c19ob3N0 X2hhc19pdHModm9pZCk7CisKKyNlbHNlCisKK3N0YXRpYyBMSVNUX0hFQUQoaG9zdF9pdHNfbGlz dCk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBnaWN2M19pdHNfZHRfaW5pdChjb25zdCBzdHJ1Y3Qg ZHRfZGV2aWNlX25vZGUgKm5vZGUpCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBnaWN2M19p dHNfaG9zdF9oYXNfaXRzKHZvaWQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCisjZW5kaWYg LyogQ09ORklHX0hBU19JVFMgKi8KKworI2VuZGlmCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6 CisgKiBtb2RlOiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDog NAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KLS0gCjIuOS4wCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==