From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v4 19/27] ARM: vITS: handle MAPD command Date: Mon, 3 Apr 2017 21:28:21 +0100 Message-ID: <20170403202829.7278-20-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 1cv8Yv-00059L-ST for xen-devel@lists.xenproject.org; Mon, 03 Apr 2017 20:26:53 +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 VGhlIE1BUEQgY29tbWFuZCBtYXBzIGEgZGV2aWNlIGJ5IGFzc29jaWF0aW5nIGEgbWVtb3J5IHJl Z2lvbiBmb3IKc3RvcmluZyBJVEVzIHdpdGggYSBjZXJ0YWluIGRldmljZSBJRC4KV2Ugc3RvcmUg dGhlIGdpdmVuIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MgaW4gdGhlIGRldmljZSB0YWJsZSwgYW5k LCBpZgp0aGlzIGNvbW1hbmQgY29tZXMgZnJvbSBEb20wLCB0ZWxsIHRoZSBob3N0IElUUyBkcml2 ZXIgYWJvdXQgdGhpcyBuZXcKbWFwcGluZywgc28gaXQgY2FuIGlzc3VlIHRoZSBjb3JyZXNwb25p bmcgaG9zdCBNQVBEIGNvbW1hbmQgYW5kIGNyZWF0ZQp0aGUgcmVxdWlyZWQgdGFibGVzLgpXZSBk b24ndCBtYXAgdGhlIGRldmljZSB0YWJsZXMgcGVybWFuZW50bHksIGFzIHRoZWlyIGFsaWdubWVu dApyZXF1aXJlbWVudCBpcyBvbmx5IDI1NiBCeXRlcywgdGh1cyBtYWtpbmcgbWFwcGluZyBvZiBz ZXZlcmFsIHRhYmxlcwpjb21wbGljYXRlZC4gSW5zdGVhZCB3ZSBtYXAgdGhlIGRldmljZSB0YWJs ZXMgb24gZGVtYW5kIHdoZW4gd2UgbmVlZAp0aGVtIGxhdGVyLgoKU2lnbmVkLW9mZi1ieTogQW5k cmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+Ci0tLQogeGVuL2FyY2gvYXJtL3Zn aWMtdjMtaXRzLmMgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL2FybS92Z2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKaW5k ZXggNjM5ZmJiZi4uMGU2MzZkZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRz LmMKKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKQEAgLTQyLDYgKzQyLDcgQEAKICNk ZWZpbmUgVklSVF9JVFNfQ01EQlVGX1ZBTElEICAgMwogc3RydWN0IHZpcnRfaXRzIHsKICAgICBz dHJ1Y3QgZG9tYWluICpkOworICAgIHBhZGRyX3QgZG9vcmJlbGxfYWRkcmVzczsKICAgICBzcGlu bG9ja190IHZjbWRfbG9jazsgICAgICAgLyogUHJvdGVjdHMgdGhlIHZpcnR1YWwgY29tbWFuZCBi dWZmZXIuICovCiAgICAgdWludDY0X3QgY2Jhc2VyOwogICAgIHVpbnQ2NF90IGN3cml0ZXI7CkBA IC0xNDIsNiArMTQzLDI3IEBAIHN0YXRpYyBzdHJ1Y3QgdmNwdSAqZ2V0X3ZjcHVfZnJvbV9jb2xs ZWN0aW9uKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLAogI2RlZmluZSBERVZfVEFCTEVfRU5UUlkoYWRk ciwgYml0cykgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICgoKGFkZHIpICYgR0VOTUFT S19VTEwoNTEsIDgpKSB8ICgoKGJpdHMpIC0gMSkgJiBHRU5NQVNLX1VMTCg3LCAwKSkpCiAKKy8q IFNldCB0aGUgYWRkcmVzcyBvZiBhbiBJVFQgZm9yIGEgZ2l2ZW4gZGV2aWNlIElELiAqLworc3Rh dGljIGludCBpdHNfc2V0X2l0dF9hZGRyZXNzKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLCB1aW50MzJf dCBkZXZpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGl0dF9hZGRy ZXNzLCB1aW50MzJfdCBucl9iaXRzKQoreworICAgIHBhZGRyX3QgYWRkciA9IGdldF9iYXNlcl9w aHlzX2FkZHIoaXRzLT5iYXNlcl9kZXYpOworICAgIHVpbnQ2NF90ICppdHQ7CisKKyAgICBpZiAo IGRldmlkID49IGl0cy0+bWF4X2RldmljZXMgKQorICAgICAgICByZXR1cm4gLUVOT0VOVDsKKwor ICAgIGl0dCA9IG1hcF9vbmVfZ3Vlc3RfcGFnZShpdHMtPmQsIGFkZHIgKyBkZXZpZCAqIHNpemVv Zih1aW50NjRfdCkpOworICAgIGlmICggIWl0dCApCisgICAgICAgIHJldHVybiAtRUZBVUxUOwor CisgICAgKml0dCA9IERFVl9UQUJMRV9FTlRSWShpdHRfYWRkcmVzcywgbnJfYml0cyk7CisKKyAg ICB1bm1hcF9vbmVfZ3Vlc3RfcGFnZShpdHQpOworCisgICAgcmV0dXJuIDA7Cit9CisKIC8qCiAg KiBMb29rdXAgdGhlIGFkZHJlc3Mgb2YgdGhlIEludGVycnVwdCBUcmFuc2xhdGlvbiBUYWJsZSBh c3NvY2lhdGVkIHdpdGgKICAqIGEgZGV2aWNlIElEIGFuZCByZXR1cm4gdGhlIGFkZHJlc3Mgb2Yg dGhlIElUVEUgYmVsb25naW5nIHRvIHRoZSBldmVudCBJRApAQCAtMzY3LDYgKzM4OSw0NCBAQCBz dGF0aWMgaW50IGl0c19oYW5kbGVfbWFwYyhzdHJ1Y3QgdmlydF9pdHMgKml0cywgdWludDY0X3Qg KmNtZHB0cikKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBpdHNfaGFuZGxlX21hcGQo c3RydWN0IHZpcnRfaXRzICppdHMsIHVpbnQ2NF90ICpjbWRwdHIpCit7CisgICAgdWludDMyX3Qg ZGV2aWQgPSBpdHNfY21kX2dldF9kZXZpY2VpZChjbWRwdHIpOworICAgIHVuc2lnbmVkIGludCBz aXplID0gaXRzX2NtZF9nZXRfc2l6ZShjbWRwdHIpICsgMTsKKyAgICBib29sIHZhbGlkID0gaXRz X2NtZF9nZXRfdmFsaWRiaXQoY21kcHRyKTsKKyAgICBwYWRkcl90IGl0dF9hZGRyID0gaXRzX2Nt ZF9tYXNrX2ZpZWxkKGNtZHB0ciwgMiwgMCwgNTIpICYKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdFTk1BU0tfVUxMKDUxLCA4KTsKKyAgICBpbnQgcmV0OworCisgICAgLyoKKyAgICAgKiBU aGVyZSBpcyBubyBlYXN5IGFuZCBjbGVhbiB3YXkgZm9yIFhlbiB0byBrbm93IHRoZSBJVFMgZGV2 aWNlIElEIG9mIGEKKyAgICAgKiBwYXJ0aWN1bGFyIChQQ0kpIGRldmljZSwgc28gd2UgaGF2ZSB0 byByZWx5IG9uIHRoZSBndWVzdCB0ZWxsaW5nCisgICAgICogdXMgYWJvdXQgaXQuIEZvciAqbm93 KiB3ZSBhcmUganVzdCB1c2luZyB0aGUgZGV2aWNlIElEICpEb20wKiB1c2VzLAorICAgICAqIGJl Y2F1c2UgdGhlIGRyaXZlciB0aGVyZSBoYXMgdGhlIGFjdHVhbCBrbm93bGVkZ2UuCisgICAgICog RXZlbnR1YWxseSB0aGlzIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBhIGRlZGljYXRlZCBoeXBlcmNh bGwgdG8KKyAgICAgKiBhbm5vdW5jZSBwYXNzLXRocm91Z2ggb2YgZGV2aWNlcy4KKyAgICAgKi8K KyAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihpdHMtPmQpICkKKyAgICB7CisgICAgICAgIC8q IERvbTAncyBJVFNlcyBhcmUgbWFwcGVkIDE6MSwgc28gYm90aCBhZGRyZXNzIGFyZSB0aGUgc2Ft ZS4gKi8KKyAgICAgICAgcmV0ID0gZ2ljdjNfaXRzX21hcF9ndWVzdF9kZXZpY2UoaXRzLT5kLCBp dHMtPmRvb3JiZWxsX2FkZHJlc3MsIGRldmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpdHMtPmRvb3JiZWxsX2FkZHJlc3MsIGRldmlkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoc2l6ZSksIHZhbGlkKTsKKyAgICAgICAg aWYgKCByZXQgKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBzcGluX2xv Y2soJml0cy0+aXRzX2xvY2spOworICAgIGlmICggdmFsaWQgKQorICAgICAgICByZXQgPSBpdHNf c2V0X2l0dF9hZGRyZXNzKGl0cywgZGV2aWQsIGl0dF9hZGRyLCBzaXplKTsKKyAgICBlbHNlCisg ICAgICAgIHJldCA9IGl0c19zZXRfaXR0X2FkZHJlc3MoaXRzLCBkZXZpZCwgSU5WQUxJRF9QQURE UiwgMSk7CisKKyAgICBzcGluX3VubG9jaygmaXRzLT5pdHNfbG9jayk7CisKKyAgICByZXR1cm4g cmV0OworfQorCiAjZGVmaW5lIElUU19DTURfQlVGRkVSX1NJWkUoYmFzZXIpICAgICAgKCgoKGJh c2VyKSAmIDB4ZmYpICsgMSkgPDwgMTIpCiAKIHN0YXRpYyBpbnQgdmdpY19pdHNfaGFuZGxlX2Nt ZHMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZpcnRfaXRzICppdHMsCkBAIC00MTMsNiArNDcz LDkgQEAgc3RhdGljIGludCB2Z2ljX2l0c19oYW5kbGVfY21kcyhzdHJ1Y3QgZG9tYWluICpkLCBz dHJ1Y3QgdmlydF9pdHMgKml0cywKICAgICAgICAgY2FzZSBHSVRTX0NNRF9NQVBDOgogICAgICAg ICAgICAgcmV0ID0gaXRzX2hhbmRsZV9tYXBjKGl0cywgY21kcHRyKTsKICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICBjYXNlIEdJVFNfQ01EX01BUEQ6CisgICAgICAgICAgICByZXQgPSBpdHNf aGFuZGxlX21hcGQoaXRzLCBjbWRwdHIpOworCSAgICBicmVhazsKICAgICAgICAgY2FzZSBHSVRT X0NNRF9TWU5DOgogICAgICAgICAgICAgLyogV2UgaGFuZGxlIElUUyBjb21tYW5kcyBzeW5jaHJv bm91c2x5LCBzbyB3ZSBpZ25vcmUgU1lOQy4gKi8KIAkgICAgYnJlYWs7Ci0tIAoyLjkuMAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=