From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v5 6/7] xen/arm: zynqmp: implement zynqmp_eemi Date: Mon, 3 Dec 2018 13:03:40 -0800 Message-ID: <1543871021-315-6-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: edgar.iglesias@xilinx.com, Stefano Stabellini , julien.grall@arm.com, sstabellini@kernel.org, saeed.nowshadi@xilinx.com List-Id: xen-devel@lists.xenproject.org RnJvbTogIkVkZ2FyIEUuIElnbGVzaWFzIiA8ZWRnYXIuaWdsZXNpYXNAeGlsaW54LmNvbT4KCkZy b206IEVkZ2FyIEUuIElnbGVzaWFzIDxlZGdhci5pZ2xlc2lhc0B4aWxpbnguY29tPgoKenlucW1w X2VlbWkgdXNlcyB0aGUgZGVmaW5lZCBmdW5jdGlvbnMgYW5kIHN0cnVjdHMgdG8gZGVjaWRlIHdo ZXRoZXIgdG8KbWFrZSBhIGNhbGwgdG8gdGhlIGZpcm13YXJlLCBvciB0byBzaW1wbHkgcmV0dXJu IGEgcHJlZGVmaW5lZCB2YWx1ZS4KClNpZ25lZC1vZmYtYnk6IEVkZ2FyIEUuIElnbGVzaWFzIDxl ZGdhci5pZ2xlc2lhc0B4aWxpbnguY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxp bmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+Ci0tLQpDaGFuZ2VzIGluIHY1OgotIHJlbW92ZSBtbWlv X2FjY2VzcyBoYW5kbGluZwoKQ2hhbmdlcyBpbiB2NDoKLSBhZGQgI2luY2x1ZGUgYXMgbmVlZGVk Ci0gaW1wcm92ZSBjb21tZW50Ci0gY29kZSBzdHlsZQotLS0KIHhlbi9hcmNoL2FybS9wbGF0Zm9y bXMveGlsaW54LXp5bnFtcC1lZW1pLmMgfCAxODEgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDEyNSBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL3hpbGlueC16eW5xbXAtZWVtaS5jIGIv eGVuL2FyY2gvYXJtL3BsYXRmb3Jtcy94aWxpbngtenlucW1wLWVlbWkuYwppbmRleCA5MmEwMmRm Li45ZWNmMjg2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcGxhdGZvcm1zL3hpbGlueC16eW5x bXAtZWVtaS5jCisrKyBiL3hlbi9hcmNoL2FybS9wbGF0Zm9ybXMveGlsaW54LXp5bnFtcC1lZW1p LmMKQEAgLTc2LDEwICs3NiwxMCBAQAogCiAjaW5jbHVkZSA8eGVuL2lvY2FwLmg+CiAjaW5jbHVk ZSA8eGVuL3NjaGVkLmg+CisjaW5jbHVkZSA8YXNtL3NtY2NjLmg+CiAjaW5jbHVkZSA8YXNtL3Jl Z3MuaD4KICNpbmNsdWRlIDxhc20vcGxhdGZvcm1zL3hpbGlueC16eW5xbXAtZWVtaS5oPgogCi0j aWYgMAogc3RydWN0IHBtX2FjY2VzcwogewogICAgIG1mbl90IG1mbjsKQEAgLTMwOSw2NyArMzA5 LDEzNiBAQCBzdGF0aWMgYm9vbCBkb21haW5faGFzX3Jlc2V0X2FjY2VzcyhzdHJ1Y3QgZG9tYWlu ICpkLCB1aW50MzJfdCByc3QpCiAgICAgcmV0dXJuIHBtX2NoZWNrX2FjY2VzcyhwbV9yZXNldF9h Y2Nlc3MsIGQsIHJzdCk7CiB9CiAKLS8qCi0gKiBDaGVjayBpZiBhIGdpdmVuIGRvbWFpbiBoYXMg YWNjZXNzIHRvIHBlcmZvcm0gYW4gaW5kaXJlY3QKLSAqIE1NSU8gYWNjZXNzLgotICoKLSAqIElm IHRoZSBwcm92aWRlZCBtYXNrIGlzIGludmFsaWQsIGl0IHdpbGwgYmUgZml4ZWQgdXAuCi0gKi8K LXN0YXRpYyBib29sIGRvbWFpbl9oYXNfbW1pb19hY2Nlc3Moc3RydWN0IGRvbWFpbiAqZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB3cml0ZSwgcGFkZHJfdCBhZGRy LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbWFzaykKK2Jv b2wgenlucW1wX2VlbWkoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiB7Ci0gICAgdW5zaWdu ZWQgaW50IGk7Ci0gICAgYm9vbCByZXQgPSBmYWxzZTsKLSAgICB1aW50MzJfdCBwcm90X21hc2sg PSAwOwotCi0gICAgLyoKLSAgICAgKiBUaGUgaGFyZHdhcmUgZG9tYWluIGdldHMgcmVhZCBhY2Nl c3MgdG8gZXZlcnl0aGluZy4KLSAgICAgKiBMb3dlciBsYXllcnMgd2lsbCBkbyBmdXJ0aGVyIGZp bHRlcmluZy4KLSAgICAgKi8KLSAgICBpZiAoICF3cml0ZSAmJiBpc19oYXJkd2FyZV9kb21haW4o ZCkgKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBzdHJ1Y3QgYXJtX3NtY2NjX3JlcyByZXM7 CisgICAgdWludDMyX3QgZmlkID0gZ2V0X3VzZXJfcmVnKHJlZ3MsIDApOworICAgIHVpbnQzMl90 IG5vZGVpZCA9IGdldF91c2VyX3JlZyhyZWdzLCAxKTsKKyAgICB1bnNpZ25lZCBpbnQgcG1fZm4g PSBmaWQgJiAweEZGRkY7CisgICAgZW51bSBwbV9yZXRfc3RhdHVzIHJldDsKIAotICAgIC8qIFNj YW4gdGhlIEFDTC4gICovCi0gICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBtX21taW9f YWNjZXNzKTsgaSsrICkKKyAgICBzd2l0Y2ggKCBwbV9mbiApCiAgICAgewotICAgICAgICBBU1NF UlQocG1fbW1pb19hY2Nlc3NbaV0uc3RhcnQgKyBwbV9tbWlvX2FjY2Vzc1tpXS5zaXplID49Ci0g ICAgICAgICAgICAgICBwbV9tbWlvX2FjY2Vzc1tpXS5zdGFydCk7Ci0KLSAgICAgICAgaWYgKCBh ZGRyIDwgcG1fbW1pb19hY2Nlc3NbaV0uc3RhcnQgKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl OwotICAgICAgICBpZiAoIGFkZHIgPj0gcG1fbW1pb19hY2Nlc3NbaV0uc3RhcnQgKyBwbV9tbWlv X2FjY2Vzc1tpXS5zaXplICkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmICgg d3JpdGUgJiYgcG1fbW1pb19hY2Nlc3NbaV0ucmVhZG9ubHkgKQotICAgICAgICAgICAgcmV0dXJu IGZhbHNlOwotICAgICAgICBpZiAoIHBtX21taW9fYWNjZXNzW2ldLmh3ZG9tX2FjY2VzcyAmJiAh aXNfaGFyZHdhcmVfZG9tYWluKGQpICkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg ICAgaWYgKCAhZG9tYWluX2hhc19ub2RlX2FjY2VzcyhkLCBwbV9tbWlvX2FjY2Vzc1tpXS5ub2Rl KSApCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgLyogV2UndmUgZ290IGFj Y2VzcyB0byB0aGlzIHJlZyAob3IgcGFydHMgb2YgaXQpLiAgKi8KLSAgICAgICAgcmV0ID0gdHJ1 ZTsKLQotICAgICAgICAvKiBQZXJtaXQgd3JpdGUgYWNjZXNzIHRvIHNlbGVjdGVkIGJpdHMuICAq LwotICAgICAgICBwcm90X21hc2sgfD0gcG1fbW1pb19hY2Nlc3NbaV0ubWFzayA/OiBHRU5NQVNL KDMxLCAwKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgLyoKLSAgICAgKiBNYXNraW5n IG9ubHkgYXBwbGllcyB0byB3cml0ZXM6IHZhbHVlcyBhcmUgc2FmZSB0byByZWFkLCBidXQgbm90 Ci0gICAgICogYWxsIGJpdHMgYXJlIHdyaXRlYWJsZS4KKyAgICAgKiBXZSBjYW4ndCBhbGxvdyBD UFVzIHRvIHN1c3BlbmQgd2l0aG91dCBYZW4ga25vd2luZyBhYm91dCBpdC4KKyAgICAgKiBXZSBh Y2NlcHQgYnV0IGlnbm9yZSB0aGUgcmVxdWVzdCBhbmQgd2FpdCBmb3IgdGhlIGd1ZXN0IHRvIGlz c3VlCisgICAgICogYSBXRkkgb3IgUFNDSSBjYWxsIHdoaWNoIFhlbiB3aWxsIHRyYXAgYW5kIGFj dCBhY2NvcmRpbmdseSB1cG9uLgogICAgICAqLwotICAgIGlmICggd3JpdGUgKQotICAgICAgICAq bWFzayAmPSBwcm90X21hc2s7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotI2VuZGlmCisgICAgY2Fz ZSBQTV9TRUxGX1NVU1BFTkQ6CisgICAgICAgIHJldCA9IFhTVF9QTV9TVUNDRVNTOworICAgICAg ICBnb3RvIGRvbmU7CisKKyAgICBjYXNlIFBNX0dFVF9OT0RFX1NUQVRVUzoKKyAgICAvKiBBUEkg Zm9yIFBVcy4gICovCisgICAgY2FzZSBQTV9SRVFfU1VTUEVORDoKKyAgICBjYXNlIFBNX0ZPUkNF X1BPV0VSRE9XTjoKKyAgICBjYXNlIFBNX0FCT1JUX1NVU1BFTkQ6CisgICAgY2FzZSBQTV9SRVFf V0FLRVVQOgorICAgIGNhc2UgUE1fU0VUX1dBS0VVUF9TT1VSQ0U6CisgICAgLyogQVBJIGZvciBz bGF2ZXMuICAqLworICAgIGNhc2UgUE1fUkVRX05PREU6CisgICAgY2FzZSBQTV9SRUxFQVNFX05P REU6CisgICAgY2FzZSBQTV9TRVRfUkVRVUlSRU1FTlQ6CisgICAgY2FzZSBQTV9TRVRfTUFYX0xB VEVOQ1k6CisgICAgICAgIGlmICggIWRvbWFpbl9oYXNfbm9kZV9hY2Nlc3MoY3VycmVudC0+ZG9t YWluLCBub2RlaWQpICkKKyAgICAgICAgeworICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FS TklORywKKyAgICAgICAgICAgICAgICAgICAgInp5bnFtcC1wbTogZm49JXUgTm8gYWNjZXNzIHRv IG5vZGUgJXVcbiIsIHBtX2ZuLCBub2RlaWQpOworICAgICAgICAgICAgcmV0ID0gWFNUX1BNX05P X0FDQ0VTUzsKKyAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgfQorICAgICAgICBnb3Rv IGZvcndhcmRfdG9fZnc7CisKKyAgICBjYXNlIFBNX1JFU0VUX0FTU0VSVDoKKyAgICBjYXNlIFBN X1JFU0VUX0dFVF9TVEFUVVM6CisgICAgICAgIGlmICggIWRvbWFpbl9oYXNfcmVzZXRfYWNjZXNz KGN1cnJlbnQtPmRvbWFpbiwgbm9kZWlkKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGdwcmlu dGsoWEVOTE9HX1dBUk5JTkcsCisgICAgICAgICAgICAgICAgICAgICJ6eW5xbXAtcG06IGZuPSV1 IE5vIGFjY2VzcyB0byByZXNldCAldVxuIiwgcG1fZm4sIG5vZGVpZCk7CisgICAgICAgICAgICBy ZXQgPSBYU1RfUE1fTk9fQUNDRVNTOworICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICB9 CisgICAgICAgIGdvdG8gZm9yd2FyZF90b19mdzsKKworICAgIC8qIFRoZXNlIGNhbGxzIGFyZSBz YWZlIGFuZCBhbHdheXMgYWxsb3dlZC4gICovCisgICAgY2FzZSBaWU5RTVBfU0lQX1NWQ19DQUxM X0NPVU5UOgorICAgIGNhc2UgWllOUU1QX1NJUF9TVkNfVUlEOgorICAgIGNhc2UgWllOUU1QX1NJ UF9TVkNfVkVSU0lPTjoKKyAgICBjYXNlIFBNX0dFVF9UUlVTVFpPTkVfVkVSU0lPTjoKKyAgICBj YXNlIFBNX0dFVF9BUElfVkVSU0lPTjoKKyAgICBjYXNlIFBNX0dFVF9DSElQSUQ6CisgICAgICAg IGdvdG8gZm9yd2FyZF90b19mdzsKKworICAgIC8qIE5vIE1NSU8gYWNjZXNzIGlzIGFsbG93ZWQg ZnJvbSBub24tc2VjdXJlIGRvbWFpbnMgKi8KKyAgICBjYXNlIFBNX01NSU9fV1JJVEU6CisgICAg Y2FzZSBQTV9NTUlPX1JFQUQ6CisgICAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcsCisgICAg ICAgICAgICAgICAgInp5bnFtcC1wbTogZm49JXUgTm8gTU1JTyBhY2Nlc3MgdG8gJXVcbiIsIHBt X2ZuLCBub2RlaWQpOworICAgICAgICByZXQgPSBYU1RfUE1fTk9fQUNDRVNTOworICAgICAgICBn b3RvIGRvbmU7CisKKyAgICAvKiBFeGNsdXNpdmUgdG8gdGhlIGhhcmR3YXJlIGRvbWFpbi4gICov CisgICAgY2FzZSBQTV9JTklUOgorICAgIGNhc2UgUE1fU0VUX0NPTkZJR1VSQVRJT046CisgICAg Y2FzZSBQTV9GUEdBX0xPQUQ6CisgICAgY2FzZSBQTV9GUEdBX0dFVF9TVEFUVVM6CisgICAgY2Fz ZSBQTV9TRUNVUkVfU0hBOgorICAgIGNhc2UgUE1fU0VDVVJFX1JTQToKKyAgICBjYXNlIFBNX1BJ TkNUUkxfU0VUX0ZVTkNUSU9OOgorICAgIGNhc2UgUE1fUElOQ1RSTF9SRVFVRVNUOgorICAgIGNh c2UgUE1fUElOQ1RSTF9SRUxFQVNFOgorICAgIGNhc2UgUE1fUElOQ1RSTF9HRVRfRlVOQ1RJT046 CisgICAgY2FzZSBQTV9QSU5DVFJMX0NPTkZJR19QQVJBTV9HRVQ6CisgICAgY2FzZSBQTV9QSU5D VFJMX0NPTkZJR19QQVJBTV9TRVQ6CisgICAgY2FzZSBQTV9JT0NUTDoKKyAgICBjYXNlIFBNX1FV RVJZX0RBVEE6CisgICAgY2FzZSBQTV9DTE9DS19FTkFCTEU6CisgICAgY2FzZSBQTV9DTE9DS19E SVNBQkxFOgorICAgIGNhc2UgUE1fQ0xPQ0tfR0VUU1RBVEU6CisgICAgY2FzZSBQTV9DTE9DS19H RVRESVZJREVSOgorICAgIGNhc2UgUE1fQ0xPQ0tfU0VURElWSURFUjoKKyAgICBjYXNlIFBNX0NM T0NLX1NFVFJBVEU6CisgICAgY2FzZSBQTV9DTE9DS19HRVRSQVRFOgorICAgIGNhc2UgUE1fQ0xP Q0tfU0VUUEFSRU5UOgorICAgIGNhc2UgUE1fQ0xPQ0tfR0VUUEFSRU5UOgorICAgICAgICBpZiAo ICFpc19oYXJkd2FyZV9kb21haW4oY3VycmVudC0+ZG9tYWluKSApCisgICAgICAgIHsKKyAgICAg ICAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5JTkcsICJlZW1pOiBmbj0ldSBObyBhY2Nlc3MiLCBw bV9mbik7CisgICAgICAgICAgICByZXQgPSBYU1RfUE1fTk9fQUNDRVNTOworICAgICAgICAgICAg Z290byBkb25lOworICAgICAgICB9CisgICAgICAgIGdvdG8gZm9yd2FyZF90b19mdzsKKworICAg IC8qIFRoZXNlIGNhbGxzIGFyZSBuZXZlciBhbGxvd2VkLiAgKi8KKyAgICBjYXNlIFBNX1NZU1RF TV9TSFVURE9XTjoKKyAgICAgICAgcmV0ID0gWFNUX1BNX05PX0FDQ0VTUzsKKyAgICAgICAgZ290 byBkb25lOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgZ3ByaW50ayhYRU5MT0dfV0FSTklORywg Inp5bnFtcC1wbTogVW5oYW5kbGVkIFBNIENhbGw6ICV1XG4iLCBmaWQpOworICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgfQogCi1ib29sIHp5bnFtcF9lZW1pKHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQotewotICAgIHJldHVybiBmYWxzZTsKK2ZvcndhcmRfdG9fZnc6CisgICAgYXJtX3Nt Y2NjXzFfMV9zbWMoZ2V0X3VzZXJfcmVnKHJlZ3MsIDApLAorICAgICAgICAgICAgICAgICAgICAg IGdldF91c2VyX3JlZyhyZWdzLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgICBnZXRfdXNlcl9y ZWcocmVncywgMiksCisgICAgICAgICAgICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJlZ3MsIDMp LAorICAgICAgICAgICAgICAgICAgICAgIGdldF91c2VyX3JlZyhyZWdzLCA0KSwKKyAgICAgICAg ICAgICAgICAgICAgICBnZXRfdXNlcl9yZWcocmVncywgNSksCisgICAgICAgICAgICAgICAgICAg ICAgZ2V0X3VzZXJfcmVnKHJlZ3MsIDYpLAorICAgICAgICAgICAgICAgICAgICAgIGdldF91c2Vy X3JlZyhyZWdzLCA3KSwKKyAgICAgICAgICAgICAgICAgICAgICAmcmVzKTsKKworICAgIHNldF91 c2VyX3JlZyhyZWdzLCAwLCByZXMuYTApOworICAgIHNldF91c2VyX3JlZyhyZWdzLCAxLCByZXMu YTEpOworICAgIHNldF91c2VyX3JlZyhyZWdzLCAyLCByZXMuYTIpOworICAgIHNldF91c2VyX3Jl ZyhyZWdzLCAzLCByZXMuYTMpOworICAgIHJldHVybiB0cnVlOworCitkb25lOgorICAgIHNldF91 c2VyX3JlZyhyZWdzLCAwLCByZXQpOworICAgIHJldHVybiB0cnVlOwogfQogCiAvKgotLSAKMS45 LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs