From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v3 18/26] ARM: vITS: handle MAPD command Date: Fri, 31 Mar 2017 19:05:17 +0100 Message-ID: <20170331180525.30038-19-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cu0tu-0005jL-Dj for xen-devel@lists.xenproject.org; Fri, 31 Mar 2017 18:03:54 +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 VGhlIE1BUEQgY29tbWFuZCBtYXBzIGEgZGV2aWNlIGJ5IGFzc29jaWF0aW5nIGEgbWVtb3J5IHJl Z2lvbiBmb3IKc3RvcmluZyBJVEVzIHdpdGggYSBjZXJ0YWluIGRldmljZSBJRC4KV2Ugc3RvcmUg dGhlIGdpdmVuIGd1ZXN0IHBoeXNpY2FsIGFkZHJlc3MgaW4gdGhlIGRldmljZSB0YWJsZSwgYW5k LCBpZgp0aGlzIGNvbW1hbmQgY29tZXMgZnJvbSBEb20wLCB0ZWxsIHRoZSBob3N0IElUUyBkcml2 ZXIgYWJvdXQgdGhpcyBuZXcKbWFwcGluZywgc28gaXQgY2FuIGlzc3VlIHRoZSBjb3JyZXNwb25p bmcgaG9zdCBNQVBEIGNvbW1hbmQgYW5kIGNyZWF0ZQp0aGUgcmVxdWlyZWQgdGFibGVzLgpXZSBk b24ndCBtYXAgdGhlIGRldmljZSB0YWJsZXMgcGVybWFuZW50bHksIGFzIHRoZWlyIGFsaWdubWVu dApyZXF1aXJlbWVudCBpcyBvbmx5IDI1NiBCeXRlcywgdGh1cyBtYWtpbmcgbWFwcGluZyBvZiBz ZXZlcmFsIHRhYmxlcwpjb21wbGljYXRlZC4gSW5zdGVhZCB3ZSBtYXAgdGhlIGRldmljZSB0YWJs ZXMgb24gZGVtYW5kIHdoZW4gd2UgbmVlZAp0aGVtIGxhdGVyLgoKU2lnbmVkLW9mZi1ieTogQW5k cmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+Ci0tLQogeGVuL2FyY2gvYXJtL3Zn aWMtdjMtaXRzLmMgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL2FybS92Z2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKaW5k ZXggOGMyZWFhYS4uMzZiNDRmMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRz LmMKKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKQEAgLTQyLDYgKzQyLDcgQEAKICNk ZWZpbmUgVklSVF9JVFNfQ01EQlVGX1ZBTElEICAgMwogc3RydWN0IHZpcnRfaXRzIHsKICAgICBz dHJ1Y3QgZG9tYWluICpkOworICAgIHBhZGRyX3QgZG9vcmJlbGxfYWRkcmVzczsKICAgICBzcGlu bG9ja190IHZjbWRfbG9jazsgICAgICAgLyogUHJvdGVjdHMgdGhlIHZpcnR1YWwgY29tbWFuZCBi dWZmZXIuICovCiAgICAgdWludDY0X3QgY2Jhc2VyOwogICAgIHVpbnQ2NF90IGN3cml0ZXI7CkBA IC0xNDEsNiArMTQyLDI3IEBAIHN0YXRpYyBzdHJ1Y3QgdmNwdSAqZ2V0X3ZjcHVfZnJvbV9jb2xs ZWN0aW9uKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLCBpbnQgY29sbGlkKQogI2RlZmluZSBERVZfVEFC TEVfRU5UUlkoYWRkciwgYml0cykgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICgoKGFk ZHIpICYgR0VOTUFTS19VTEwoNTEsIDgpKSB8ICgoKGJpdHMpIC0gMSkgJiBHRU5NQVNLX1VMTCg3 LCAwKSkpCiAKKy8qIFNldCB0aGUgYWRkcmVzcyBvZiBhbiBJVFQgZm9yIGEgZ2l2ZW4gZGV2aWNl IElELiAqLworc3RhdGljIGludCBpdHNfc2V0X2l0dF9hZGRyZXNzKHN0cnVjdCB2aXJ0X2l0cyAq aXRzLCB1aW50MzJfdCBkZXZpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRk cl90IGl0dF9hZGRyZXNzLCB1aW50MzJfdCBucl9iaXRzKQoreworICAgIHBhZGRyX3QgYWRkciA9 IGdldF9iYXNlcl9waHlzX2FkZHIoaXRzLT5iYXNlcl9kZXYpOworICAgIHVpbnQ2NF90ICppdHQ7 CisKKyAgICBpZiAoIGRldmlkID49IGl0cy0+bWF4X2RldmljZXMgKQorICAgICAgICByZXR1cm4g LUVOT0VOVDsKKworICAgIGl0dCA9IG1hcF9vbmVfZ3Vlc3RfcGFnZShpdHMtPmQsIGFkZHIgKyBk ZXZpZCAqIHNpemVvZih1aW50NjRfdCkpOworICAgIGlmICggIWl0dCApCisgICAgICAgIHJldHVy biAtRUZBVUxUOworCisgICAgKml0dCA9IERFVl9UQUJMRV9FTlRSWShpdHRfYWRkcmVzcywgbnJf Yml0cyk7CisKKyAgICB1bm1hcF9vbmVfZ3Vlc3RfcGFnZShpdHQpOworCisgICAgcmV0dXJuIDA7 Cit9CisKIC8qCiAgKiBMb29rdXAgdGhlIGFkZHJlc3Mgb2YgdGhlIEludGVycnVwdCBUcmFuc2xh dGlvbiBUYWJsZSBhc3NvY2lhdGVkIHdpdGgKICAqIGEgZGV2aWNlIElEIGFuZCByZXR1cm4gdGhl IGFkZHJlc3Mgb2YgdGhlIElUVEUgYmVsb25naW5nIHRvIHRoZSBldmVudCBJRApAQCAtMzYxLDYg KzM4Myw0NCBAQCBzdGF0aWMgaW50IGl0c19oYW5kbGVfbWFwYyhzdHJ1Y3QgdmlydF9pdHMgKml0 cywgdWludDY0X3QgKmNtZHB0cikKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBpdHNf aGFuZGxlX21hcGQoc3RydWN0IHZpcnRfaXRzICppdHMsIHVpbnQ2NF90ICpjbWRwdHIpCit7Cisg ICAgdWludDMyX3QgZGV2aWQgPSBpdHNfY21kX2dldF9kZXZpY2VpZChjbWRwdHIpOworICAgIGlu dCBzaXplID0gaXRzX2NtZF9nZXRfc2l6ZShjbWRwdHIpICsgMTsKKyAgICBib29sIHZhbGlkID0g aXRzX2NtZF9nZXRfdmFsaWRiaXQoY21kcHRyKTsKKyAgICBwYWRkcl90IGl0dF9hZGRyID0gaXRz X2NtZF9tYXNrX2ZpZWxkKGNtZHB0ciwgMiwgMCwgNTIpICYKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdFTk1BU0tfVUxMKDUxLCA4KTsKKyAgICBpbnQgcmV0OworCisgICAgLyoKKyAgICAg KiBUaGVyZSBpcyBubyBlYXN5IGFuZCBjbGVhbiB3YXkgZm9yIFhlbiB0byBrbm93IHRoZSBJVFMg ZGV2aWNlIElEIG9mIGEKKyAgICAgKiBwYXJ0aWN1bGFyIChQQ0kpIGRldmljZSwgc28gd2UgaGF2 ZSB0byByZWx5IG9uIHRoZSBndWVzdCB0ZWxsaW5nCisgICAgICogdXMgYWJvdXQgaXQuIEZvciAq bm93KiB3ZSBhcmUganVzdCB1c2luZyB0aGUgZGV2aWNlIElEICpEb20wKiB1c2VzLAorICAgICAq IGJlY2F1c2UgdGhlIGRyaXZlciB0aGVyZSBoYXMgdGhlIGFjdHVhbCBrbm93bGVkZ2UuCisgICAg ICogRXZlbnR1YWxseSB0aGlzIHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBhIGRlZGljYXRlZCBoeXBl cmNhbGwgdG8KKyAgICAgKiBhbm5vdW5jZSBwYXNzLXRocm91Z2ggb2YgZGV2aWNlcy4KKyAgICAg Ki8KKyAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihpdHMtPmQpICkKKyAgICB7CisgICAgICAg IC8qIERvbTAncyBJVFNlcyBhcmUgbWFwcGVkIDE6MSwgc28gYm90aCBhZGRyZXNzIGFyZSB0aGUg c2FtZS4gKi8KKyAgICAgICAgcmV0ID0gZ2ljdjNfaXRzX21hcF9ndWVzdF9kZXZpY2UoaXRzLT5k LCBpdHMtPmRvb3JiZWxsX2FkZHJlc3MsIGRldmlkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpdHMtPmRvb3JiZWxsX2FkZHJlc3MsIGRldmlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoc2l6ZSksIHZhbGlkKTsKKyAgICAg ICAgaWYgKCByZXQgKQorICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBzcGlu X2xvY2soJml0cy0+aXRzX2xvY2spOworICAgIGlmICggdmFsaWQgKQorICAgICAgICByZXQgPSBp dHNfc2V0X2l0dF9hZGRyZXNzKGl0cywgZGV2aWQsIGl0dF9hZGRyLCBzaXplKTsKKyAgICBlbHNl CisgICAgICAgIHJldCA9IGl0c19zZXRfaXR0X2FkZHJlc3MoaXRzLCBkZXZpZCwgSU5WQUxJRF9Q QUREUiwgMSk7CisKKyAgICBzcGluX3VubG9jaygmaXRzLT5pdHNfbG9jayk7CisKKyAgICByZXR1 cm4gcmV0OworfQorCiAjZGVmaW5lIElUU19DTURfQlVGRkVSX1NJWkUoYmFzZXIpICAgICAgKCgo KGJhc2VyKSAmIDB4ZmYpICsgMSkgPDwgMTIpCiAKIHN0YXRpYyBpbnQgdmdpY19pdHNfaGFuZGxl X2NtZHMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZpcnRfaXRzICppdHMsCkBAIC00MDcsNiAr NDY3LDkgQEAgc3RhdGljIGludCB2Z2ljX2l0c19oYW5kbGVfY21kcyhzdHJ1Y3QgZG9tYWluICpk LCBzdHJ1Y3QgdmlydF9pdHMgKml0cywKICAgICAgICAgY2FzZSBHSVRTX0NNRF9NQVBDOgogICAg ICAgICAgICAgcmV0ID0gaXRzX2hhbmRsZV9tYXBjKGl0cywgY21kcHRyKTsKICAgICAgICAgICAg IGJyZWFrOworICAgICAgICBjYXNlIEdJVFNfQ01EX01BUEQ6CisgICAgICAgICAgICByZXQgPSBp dHNfaGFuZGxlX21hcGQoaXRzLCBjbWRwdHIpOworCSAgICBicmVhazsKICAgICAgICAgY2FzZSBH SVRTX0NNRF9TWU5DOgogICAgICAgICAgICAgLyogV2UgaGFuZGxlIElUUyBjb21tYW5kcyBzeW5j aHJvbm91c2x5LCBzbyB3ZSBpZ25vcmUgU1lOQy4gKi8KIAkgICAgYnJlYWs7Ci0tIAoyLjkuMAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=