From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shanker Donthineni Subject: Re: [PATCH 15/28] ARM: vGICv3: introduce basic ITS emulation bits Date: Wed, 15 Feb 2017 14:06:46 -0600 Message-ID: References: <20170130183153.28566-1-andre.przywara@arm.com> <20170130183153.28566-16-andre.przywara@arm.com> Reply-To: shankerd@codeaurora.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 1ce5qm-0002f5-Vb for xen-devel@lists.xenproject.org; Wed, 15 Feb 2017 20:06:53 +0000 In-Reply-To: <20170130183153.28566-16-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andre Przywara , Stefano Stabellini , Julien Grall Cc: xen-devel@lists.xenproject.org, Vijay Kilari List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmUKCgpPbiAwMS8zMC8yMDE3IDEyOjMxIFBNLCBBbmRyZSBQcnp5d2FyYSB3cm90ZToK PiBDcmVhdGUgYSBuZXcgZmlsZSB0byBob2xkIHRoZSBlbXVsYXRpb24gY29kZSBmb3IgdGhlIElU UyB3aWRnZXQuCj4gRm9yIG5vdyB3ZSBlbXVsYXRlIHRoZSBtZW1vcnkgbWFwcGVkIElUUyByZWdp c3RlcnMgYW5kIHByb3ZpZGUgYSBzdHViCj4gdG8gaW50cm9kdWNlIHRoZSBJVFMgY29tbWFuZCBo YW5kbGluZyBmcmFtZXdvcmsgKGJ1dCB3aXRob3V0IGFjdHVhbGx5Cj4gZW11bGF0aW5nIGFueSBj b21tYW5kcyBhdCB0aGlzIHRpbWUpLgo+Cj4gU2lnbmVkLW9mZi1ieTogQW5kcmUgUHJ6eXdhcmEg PGFuZHJlLnByenl3YXJhQGFybS5jb20+Cj4gLS0tCj4gICB4ZW4vYXJjaC9hcm0vTWFrZWZpbGUg ICAgICAgICAgICAgfCAgIDEgKwo+ICAgeGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMgICAgICAg IHwgNDg1Cj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIHhlbi9h cmNoL2FybS92Z2ljLXYzLmMgICAgICAgICAgICB8ICAgOSAtCj4gICB4ZW4vaW5jbHVkZS9hc20t YXJtL2dpY192M19kZWZzLmggfCAgMTkgKysKPiAgIDQgZmlsZXMgY2hhbmdlZCwgNTA1IGluc2Vy dGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gv YXJtL3ZnaWMtdjMtaXRzLmMKPgo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUg Yi94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKPiBpbmRleCA0Y2NmMmViLi5hMWNiYzI3IDEwMDY0NAo+ IC0tLSBhL3hlbi9hcmNoL2FybS9NYWtlZmlsZQo+ICsrKyBiL3hlbi9hcmNoL2FybS9NYWtlZmls ZQo+IEBAIC00Niw2ICs0Niw3IEBAIG9iai15ICs9IHRyYXBzLm8KPiAgIG9iai15ICs9IHZnaWMu bwo+ICAgb2JqLXkgKz0gdmdpYy12Mi5vCj4gICBvYmotJChDT05GSUdfSEFTX0dJQ1YzKSArPSB2 Z2ljLXYzLm8KPiArb2JqLSQoQ09ORklHX0hBU19JVFMpICs9IHZnaWMtdjMtaXRzLm8KPiAgIG9i ai15ICs9IHZtX2V2ZW50Lm8KPiAgIG9iai15ICs9IHZ0aW1lci5vCj4gICBvYmoteSArPSB2cHNj aS5vCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLWl0cy5jIGIveGVuL2FyY2gv YXJtL3ZnaWMtdjMtaXRzLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAu LmZjMjgzNzYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRz LmMKPiBAQCAtMCwwICsxLDQ4NSBAQAo+ICsvKgo+ICsgKiB4ZW4vYXJjaC9hcm0vdmdpYy12My1p dHMuYwo+ICsgKgo+ICsgKiBBUk0gSW50ZXJydXB0IFRyYW5zbGF0aW9uIFNlcnZpY2UgKElUUykg ZW11bGF0aW9uCj4gKyAqCj4gKyAqIEFuZHJlIFByenl3YXJhIDxhbmRyZS5wcnp5d2FyYUBhcm0u Y29tPgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQVJNIEx0ZC4KPiArICoKPiArICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiArICogKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4gKyAqIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4g KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKPiArICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KPiArICovCj4gKwo+ICsjaW5jbHVkZSA8eGVuL2JpdG9wcy5oPgo+ICsjaW5jbHVkZSA8eGVu L2NvbmZpZy5oPgo+ICsjaW5jbHVkZSA8eGVuL2RvbWFpbl9wYWdlLmg+Cj4gKyNpbmNsdWRlIDx4 ZW4vbGliLmg+Cj4gKyNpbmNsdWRlIDx4ZW4vaW5pdC5oPgo+ICsjaW5jbHVkZSA8eGVuL3NvZnRp cnEuaD4KPiArI2luY2x1ZGUgPHhlbi9pcnEuaD4KPiArI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgo+ ICsjaW5jbHVkZSA8eGVuL3NpemVzLmg+Cj4gKyNpbmNsdWRlIDxhc20vY3VycmVudC5oPgo+ICsj aW5jbHVkZSA8YXNtL21taW8uaD4KPiArI2luY2x1ZGUgPGFzbS9naWNfdjNfZGVmcy5oPgo+ICsj aW5jbHVkZSA8YXNtL2dpY192M19pdHMuaD4KPiArI2luY2x1ZGUgPGFzbS92Z2ljLmg+Cj4gKyNp bmNsdWRlIDxhc20vdmdpYy1lbXVsLmg+Cj4gKwo+ICsvKiBEYXRhIHN0cnVjdHVyZSB0byBkZXNj cmliZSBhIHZpcnR1YWwgSVRTICovCj4gK3N0cnVjdCB2aXJ0X2l0cyB7Cj4gKyAgICBzdHJ1Y3Qg ZG9tYWluICpkOwo+ICsgICAgc3BpbmxvY2tfdCB2Y21kX2xvY2s7ICAgICAgIC8qIHByb3RlY3Rz IHRoZSB2aXJ0dWFsIGNvbW1hbmQgYnVmZmVyICovCj4gKyAgICB1aW50NjRfdCBjYmFzZXI7Cj4g KyAgICB1aW50NjRfdCAqY21kYnVmOwo+ICsgICAgaW50IGN3cml0ZXI7Cj4gKyAgICBpbnQgY3Jl YWRyOwo+ICsgICAgc3BpbmxvY2tfdCBpdHNfbG9jazsgICAgICAgIC8qIHByb3RlY3RzIHRoZSBj b2xsZWN0aW9uIGFuZCBkZXZpY2UKPiB0YWJsZXMgKi8KPiArICAgIHVpbnQ2NF90IGJhc2VyMCwg YmFzZXIxOwo+ICsgICAgdWludDE2X3QgKmNvbGxfdGFibGU7Cj4gKyAgICBpbnQgbWF4X2NvbGxl Y3Rpb25zOwo+ICsgICAgdWludDY0X3QgKmRldl90YWJsZTsKPiArICAgIGludCBtYXhfZGV2aWNl czsKPiArICAgIGJvb2wgZW5hYmxlZDsKPiArfTsKPiArCj4gKy8qCj4gKyAqIEFuIEludGVycnVw dCBUcmFuc2xhdGlvbiBUYWJsZSBFbnRyeTogdGhpcyBpcyBpbmRleGVkIGJ5IGEKPiArICogRGV2 aWNlSUQvRXZlbnRJRCBwYWlyIGFuZCBpcyBsb2NhdGVkIGluIGd1ZXN0IG1lbW9yeS4KPiArICov Cj4gK3N0cnVjdCB2aXRzX2l0dGUKPiArewo+ICsgICAgdWludDMyX3QgdmxwaTsKPiArICAgIHVp bnQxNl90IGNvbGxlY3Rpb247Cj4gK307Cj4gKwo+ICsvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKPiArICogRnVuY3Rpb25zIHRoYXQgaGFuZGxlIElUUyBjb21tYW5kcyAq Cj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KPiArCj4gK3N0YXRp YyB1aW50NjRfdCBpdHNfY21kX21hc2tfZmllbGQodWludDY0X3QgKml0c19jbWQsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdvcmQsIGludCBzaGlmdCwgaW50IHNp emUpCj4gK3sKPiArICAgIHJldHVybiAobGU2NF90b19jcHUoaXRzX2NtZFt3b3JkXSkgPj4gc2hp ZnQpICYgKEJJVChzaXplKSAtIDEpOwo+ICt9Cj4gKwo+ICsjZGVmaW5lIGl0c19jbWRfZ2V0X2Nv bW1hbmQoY21kKSAgICAgICAgaXRzX2NtZF9tYXNrX2ZpZWxkKGNtZCwgMCwgIDAsICA4KQo+ICsj ZGVmaW5lIGl0c19jbWRfZ2V0X2RldmljZWlkKGNtZCkgICAgICAgaXRzX2NtZF9tYXNrX2ZpZWxk KGNtZCwgMCwgMzIsIDMyKQo+ICsjZGVmaW5lIGl0c19jbWRfZ2V0X3NpemUoY21kKSAgICAgICAg ICAgaXRzX2NtZF9tYXNrX2ZpZWxkKGNtZCwgMSwgIDAsICA1KQo+ICsjZGVmaW5lIGl0c19jbWRf Z2V0X2lkKGNtZCkgICAgICAgICAgICAgaXRzX2NtZF9tYXNrX2ZpZWxkKGNtZCwgMSwgIDAsIDMy KQo+ICsjZGVmaW5lIGl0c19jbWRfZ2V0X3BoeXNpY2FsX2lkKGNtZCkgICAgaXRzX2NtZF9tYXNr X2ZpZWxkKGNtZCwgMSwgMzIsIDMyKQo+ICsjZGVmaW5lIGl0c19jbWRfZ2V0X2NvbGxlY3Rpb24o Y21kKSAgICAgaXRzX2NtZF9tYXNrX2ZpZWxkKGNtZCwgMiwgIDAsIDE2KQo+ICsjZGVmaW5lIGl0 c19jbWRfZ2V0X3RhcmdldF9hZGRyKGNtZCkgICAgaXRzX2NtZF9tYXNrX2ZpZWxkKGNtZCwgMiwg MTYsIDMyKQo+ICsjZGVmaW5lIGl0c19jbWRfZ2V0X3ZhbGlkYml0KGNtZCkgICAgICAgaXRzX2Nt ZF9tYXNrX2ZpZWxkKGNtZCwgMiwgNjMsICAxKQo+ICsKPiArI2RlZmluZSBJVFNfQ01EX0JVRkZF Ul9TSVpFKGJhc2VyKSAgICAgICgoKChiYXNlcikgJiAweGZmKSArIDEpIDw8IDEyKQo+ICsKPiAr c3RhdGljIGludCB2Z2ljX2l0c19oYW5kbGVfY21kcyhzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qg dmlydF9pdHMgKml0cywKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCB3cml0ZXIpCj4gK3sKPiArICAgIHVpbnQ2NF90ICpjbWRwdHI7Cj4gKwo+ICsgICAgaWYgKCAh aXRzLT5jbWRidWYgKQo+ICsgICAgICAgIHJldHVybiAtMTsKPiArCj4gKyAgICBpZiAoIHdyaXRl ciA+PSBJVFNfQ01EX0JVRkZFUl9TSVpFKGl0cy0+Y2Jhc2VyKSApCj4gKyAgICAgICAgcmV0dXJu IC0xOwo+ICsKPiArICAgIHNwaW5fbG9jaygmaXRzLT52Y21kX2xvY2spOwo+ICsKPiArICAgIHdo aWxlICggaXRzLT5jcmVhZHIgIT0gd3JpdGVyICkKPiArICAgIHsKPiArICAgICAgICBjbWRwdHIg PSBpdHMtPmNtZGJ1ZiArIChpdHMtPmNyZWFkciAvIHNpemVvZigqaXRzLT5jbWRidWYpKTsKPiAr ICAgICAgICBzd2l0Y2ggKGl0c19jbWRfZ2V0X2NvbW1hbmQoY21kcHRyKSkKPiArICAgICAgICB7 Cj4gKyAgICAgICAgY2FzZSBHSVRTX0NNRF9TWU5DOgo+ICsgICAgICAgICAgICAvKiBXZSBoYW5k bGUgSVRTIGNvbW1hbmRzIHN5bmNocm9ub3VzbHksIHNvIHdlIGlnbm9yZSBTWU5DLiAqLwo+ICsJ ICAgIGJyZWFrOwo+ICsgICAgICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgICAgIGdkcHJpbnRrKFhF TkxPR19HX1dBUk5JTkcsICJJVFM6IHVuaGFuZGxlZCBJVFMgY29tbWFuZCAlbGRcbiIsCj4gKyAg ICAgICAgICAgICAgICAgICBpdHNfY21kX2dldF9jb21tYW5kKGNtZHB0cikpOwo+ICsgICAgICAg ICAgICBicmVhazsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIGl0cy0+Y3JlYWRyICs9IElU U19DTURfU0laRTsKPiArICAgICAgICBpZiAoIGl0cy0+Y3JlYWRyID09IElUU19DTURfQlVGRkVS X1NJWkUoaXRzLT5jYmFzZXIpICkKPiArICAgICAgICAgICAgaXRzLT5jcmVhZHIgPSAwOwo+ICsg ICAgfQo+ICsgICAgaXRzLT5jd3JpdGVyID0gd3JpdGVyOwo+ICsKPiArICAgIHNwaW5fdW5sb2Nr KCZpdHMtPnZjbWRfbG9jayk7Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gKy8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKiBJVFMgcmVnaXN0ZXJzIHJlYWQgYWNjZXNz ICoKPiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwo+ICsKPiArLyoKPiArICogVGhl IHBoeXNpY2FsIGFkZHJlc3MgaXMgZW5jb2RlZCBzbGlnaHRseSBkaWZmZXJlbnRseSBkZXBlbmRp bmcgb24KPiArICogdGhlIHVzZWQgcGFnZSBzaXplOiB0aGUgaGlnaGVzdCBmb3VyIGJpdHMgYXJl IHN0b3JlZCBpbiB0aGUgbG93ZXN0Cj4gKyAqIGZvdXIgYml0cyBvZiB0aGUgZmllbGQgZm9yIDY0 SyBwYWdlcy4KPiArICovCj4gK3N0YXRpYyBwYWRkcl90IGdldF9iYXNlcl9waHlzX2FkZHIodWlu dDY0X3QgcmVnKQo+ICt7Cj4gKyAgICBpZiAoIHJlZyAmIEJJVCg5KSApCj4gKyAgICAgICAgcmV0 dXJuIChyZWcgJiBHRU5NQVNLKDQ3LCAxNikpIHwgKChyZWcgJiBHRU5NQVNLKDE1LCAxMikpIDw8 IDM2KTsKPiArICAgIGVsc2UKPiArICAgICAgICByZXR1cm4gcmVnICYgR0VOTUFTSyg0NywgMTIp Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHZnaWNfdjNfaXRzX21taW9fcmVhZChzdHJ1Y3QgdmNw dSAqdiwgbW1pb19pbmZvX3QgKmluZm8sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlZ2lzdGVyX3QgKnIsIHZvaWQgKnByaXYpCj4gK3sKPiArICAgIHN0cnVjdCB2aXJ0X2l0 cyAqaXRzID0gcHJpdjsKPiArCj4gKyAgICBzd2l0Y2ggKCBpbmZvLT5ncGEgJiAweGZmZmYgKQo+ ICsgICAgewo+ICsgICAgY2FzZSBWUkVHMzIoR0lUU19DVExSKToKPiArICAgICAgICBpZiAoIGlu Zm8tPmRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKSBnb3RvIGJhZF93aWR0aDsKPiArICAgICAgICAq ciA9IHZnaWNfcmVnMzJfZXh0cmFjdChpdHMtPmVuYWJsZWQgfCBCSVQoMzEpLCBpbmZvKTsKPiAr CWJyZWFrOwo+ICsgICAgY2FzZSBWUkVHMzIoR0lUU19JSURSKToKPiArICAgICAgICBpZiAoIGlu Zm8tPmRhYnQuc2l6ZSAhPSBEQUJUX1dPUkQgKSBnb3RvIGJhZF93aWR0aDsKPiArICAgICAgICAq ciA9IHZnaWNfcmVnMzJfZXh0cmFjdChHSVRTX0lJRFJfVkFMVUUsIGluZm8pOwo+ICsgICAgICAg IGJyZWFrOwo+ICsgICAgY2FzZSBWUkVHNjQoR0lUU19UWVBFUik6Cj4gKyAgICAgICAgaWYgKCBp bmZvLT5kYWJ0LnNpemUgPCBEQUJUX1dPUkQgKSBnb3RvIGJhZF93aWR0aDsKPiArICAgICAgICAq ciA9IHZnaWNfcmVnNjRfZXh0cmFjdCgweDFlZmYxLCBpbmZvKTsKV2h5IEdJVFNfVFlQRVIgaXMg aGFyZC1jb2RlZCBoZXJlPyBGb3IgRE9NMCwgYXQgbGVhc3QgTU9WUCwgSURfYml0cyBhbmQgCkRl dmJpdHMgZmllbGRzIHNob3VsZCBiZSBzYW1lIGFzIGhhcmR3YXJlIG90aGVyd2lzZSBNU0koeCkg ZmVhdHVyZSBmYWlscyAKZm9yIHNvbWUgZGV2aWNlcy4KClNoYW5rZXIgRG9udGhpbmVuaQpRdWFs Y29tbSBEYXRhY2VudGVyIFRlY2hub2xvZ2llcywgSW5jLiBhcyBhbiBhZmZpbGlhdGUgb2YgUXVh bGNvbW0gVGVjaG5vbG9naWVzLCBJbmMuClF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLiBpcyBh IG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sIGEgTGludXggRm91bmRhdGlvbiBDb2xs YWJvcmF0aXZlIFByb2plY3QuCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==