From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 14/21] xen/arm: generate a simple device tree for domUs Date: Fri, 6 Jul 2018 16:12:09 -0700 Message-ID: <1530918736-13965-14-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: julien.grall@arm.com Cc: Stefano Stabellini , sstabellini@kernel.org, andrii_anisov@epam.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGZ1bmN0aW9ucyB0byBnZW5lcmF0ZSBhIGJhc2ljIGRvbVUgZGV2aWNlIHRyZWUs IHNpbWlsYXIgdG8gdGhlCmV4aXN0aW5nIGZ1bmN0aW9ucyBpbiB0b29scy9saWJ4bC9saWJ4bF9h cm0uYy4KClNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFub3NAeGlsaW54 LmNvbT4KLS0tCkNoYW5nZXMgaW4gdjI6Ci0gbW92ZSBwcmVwYXJlX2R0YiByZW5hbWUgdG8gcHJl dmlvdXMgcGF0Y2gKLSB1c2Ugc3dpdGNoIGZvciB0aGUgZ2ljIHZlcnNpb24KLSB1c2UgYXJtLGdp Yy00MDAgaW5zdGVhZCBvZiBhcm0sY29ydGV4LWExNS1naWMKLSBhZGQgQHVuaXQtYWRkcmVzcyBp biB0aGUgZ2ljIG5vZGUgbmFtZQotIGFkZCBjb21tZW50IG9uIERPTVVfRFRCX1NJWkUKLS0tCiB4 ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgfCAyMTMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAyMTMgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9hcmNoL2FybS9k b21haW5fYnVpbGQuYwppbmRleCBhNGJjOGZkLi40OGE5MWFkIDEwMDY0NAotLS0gYS94ZW4vYXJj aC9hcm0vZG9tYWluX2J1aWxkLmMKKysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCkBA IC0xMzkyLDYgKzEzOTIsMjE1IEBAIHN0YXRpYyBpbnQgaGFuZGxlX25vZGUoc3RydWN0IGRvbWFp biAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbywKICAgICByZXR1cm4gcmVzOwogfQogCitz dGF0aWMgaW50IG1ha2VfZ2ljX2RvbVVfbm9kZShjb25zdCBzdHJ1Y3QgZG9tYWluICpkLCB2b2lk ICpmZHQsIGludCBhZGRyY2VsbHMsIGludCBzaXplY2VsbHMpCit7CisgICAgaW50IHJlcyA9IDA7 CisgICAgaW50IHJlZ19zaXplID0gYWRkcmNlbGxzICsgc2l6ZWNlbGxzOworICAgIGludCBucl9j ZWxscyA9IHJlZ19zaXplICogMjsKKyAgICBfX2JlMzIgcmVnW25yX2NlbGxzXTsKKyAgICBfX2Jl MzIgKmNlbGxzOworCisgICAgc3dpdGNoICggZ2ljX2h3X3ZlcnNpb24oKSApCisgICAgeworICAg IGNhc2UgR0lDX1YzOgorICAgICAgICByZXMgPSBmZHRfYmVnaW5fbm9kZShmZHQsICJpbnRlcnJ1 cHQtY29udHJvbGxlckAiX19zdHJpbmdpZnkoR1VFU1RfR0lDVjNfR0lDRF9CQVNFKSk7CisgICAg ICAgIGJyZWFrOworICAgIGNhc2UgR0lDX1YyOgorICAgICAgICByZXMgPSBmZHRfYmVnaW5fbm9k ZShmZHQsICJpbnRlcnJ1cHQtY29udHJvbGxlckAiX19zdHJpbmdpZnkoR1VFU1RfR0lDRF9CQVNF KSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHBhbmljKCJVbnN1cHBv cnRlZCBHSUMgdmVyc2lvbiIpOworICAgIH0KKworICAgIGlmICggcmVzICkKKyAgICAgICAgcmV0 dXJuIHJlczsKKworICAgIHJlcyA9IGZkdF9wcm9wZXJ0eV9jZWxsKGZkdCwgIiNhZGRyZXNzLWNl bGxzIiwgMCk7CisgICAgaWYgKCByZXMgKQorICAgICAgICByZXR1cm4gcmVzOworCisgICAgcmVz ID0gZmR0X3Byb3BlcnR5X2NlbGwoZmR0LCAiI2ludGVycnVwdC1jZWxscyIsIDMpOworICAgIGlm ICggcmVzICkKKyAgICAgICAgcmV0dXJuIHJlczsKKworICAgIHJlcyA9IGZkdF9wcm9wZXJ0eShm ZHQsICJpbnRlcnJ1cHQtY29udHJvbGxlciIsIE5VTEwsIDApOworICAgIGlmICggcmVzICkKKyAg ICAgICAgcmV0dXJuIHJlczsKKworICAgIHN3aXRjaCAoIGdpY19od192ZXJzaW9uKCkgKQorICAg IHsKKyAgICBjYXNlIEdJQ19WMzoKKyAgICB7CisgICAgICAgIGNvbnN0IHVpbnQ2NF90IGdpY2Rf YmFzZSA9IEdVRVNUX0dJQ1YzX0dJQ0RfQkFTRTsKKyAgICAgICAgY29uc3QgdWludDY0X3QgZ2lj ZF9zaXplID0gR1VFU1RfR0lDVjNfR0lDRF9TSVpFOworICAgICAgICBjb25zdCB1aW50NjRfdCBn aWNyMF9iYXNlID0gR1VFU1RfR0lDVjNfR0lDUjBfQkFTRTsKKyAgICAgICAgY29uc3QgdWludDY0 X3QgZ2ljcjBfc2l6ZSA9IEdVRVNUX0dJQ1YzX0dJQ1IwX1NJWkU7CisKKyAgICAgICAgcmVzID0g ZmR0X3Byb3BlcnR5X3N0cmluZyhmZHQsICJjb21wYXRpYmxlIiwgImFybSxnaWMtdjMiKTsKKyAg ICAgICAgaWYgKCByZXMgKQorICAgICAgICAgICAgcmV0dXJuIHJlczsKKworICAgICAgICBjZWxs cyA9ICZyZWdbMF07CisgICAgICAgIGR0X2NoaWxkX3NldF9yYW5nZSgmY2VsbHMsIGFkZHJjZWxs cywgc2l6ZWNlbGxzLCBnaWNkX2Jhc2UsIGdpY2Rfc2l6ZSk7CisgICAgICAgIGR0X2NoaWxkX3Nl dF9yYW5nZSgmY2VsbHMsIGFkZHJjZWxscywgc2l6ZWNlbGxzLCBnaWNyMF9iYXNlLCBnaWNyMF9z aXplKTsKKyAgICAgICAgcmVzID0gZmR0X3Byb3BlcnR5KGZkdCwgInJlZyIsIHJlZywgc2l6ZW9m KHJlZykpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBHSUNfVjI6CisgICAgewor ICAgICAgICBjb25zdCB1aW50NjRfdCBnaWNkX2Jhc2UgPSBHVUVTVF9HSUNEX0JBU0U7CisgICAg ICAgIGNvbnN0IHVpbnQ2NF90IGdpY2Rfc2l6ZSA9IEdVRVNUX0dJQ0RfU0laRTsKKyAgICAgICAg Y29uc3QgdWludDY0X3QgZ2ljY19iYXNlID0gR1VFU1RfR0lDQ19CQVNFOworICAgICAgICBjb25z dCB1aW50NjRfdCBnaWNjX3NpemUgPSBHVUVTVF9HSUNDX1NJWkU7CisKKyAgICAgICAgcmVzID0g ZmR0X3Byb3BlcnR5X3N0cmluZyhmZHQsICJjb21wYXRpYmxlIiwgImFybSxnaWMtNDAwIik7Cisg ICAgICAgIGlmICggcmVzICkKKyAgICAgICAgICAgIHJldHVybiByZXM7CisKKyAgICAgICAgY2Vs bHMgPSAmcmVnWzBdOworICAgICAgICBkdF9jaGlsZF9zZXRfcmFuZ2UoJmNlbGxzLCBhZGRyY2Vs bHMsIHNpemVjZWxscywgZ2ljZF9iYXNlLCBnaWNkX3NpemUpOworICAgICAgICBkdF9jaGlsZF9z ZXRfcmFuZ2UoJmNlbGxzLCBhZGRyY2VsbHMsIHNpemVjZWxscywgZ2ljY19iYXNlLCBnaWNjX3Np emUpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7 CisgICAgfQorCisgICAgcmVzID0gZmR0X3Byb3BlcnR5KGZkdCwgInJlZyIsIHJlZywgc2l6ZW9m KHJlZykpOworICAgIGlmIChyZXMpCisgICAgICAgIHJldHVybiByZXM7CisKKyAgICByZXMgPSBm ZHRfcHJvcGVydHlfY2VsbChmZHQsICJsaW51eCxwaGFuZGxlIiwgR1VFU1RfUEhBTkRMRV9HSUMp OworICAgIGlmIChyZXMpCisgICAgICAgIHJldHVybiByZXM7CisKKyAgICByZXMgPSBmZHRfcHJv cGVydHlfY2VsbChmZHQsICJwaGFuZGxlIiwgR1VFU1RfUEhBTkRMRV9HSUMpOworICAgIGlmIChy ZXMpCisgICAgICAgIHJldHVybiByZXM7CisKKyAgICByZXMgPSBmZHRfZW5kX25vZGUoZmR0KTsK KworICAgIHJldHVybiByZXM7Cit9CisKK3N0YXRpYyBpbnQgbWFrZV90aW1lcl9kb21VX25vZGUo Y29uc3Qgc3RydWN0IGRvbWFpbiAqZCwgdm9pZCAqZmR0KQoreworICAgIGludCByZXM7CisgICAg Z2ljX2ludGVycnVwdF90IGludHJzWzNdOworCisgICAgcmVzID0gZmR0X2JlZ2luX25vZGUoZmR0 LCAidGltZXIiKTsKKyAgICBpZiAoIHJlcyApCisgICAgICAgIHJldHVybiByZXM7CisKKyAgICBp ZiAoIWlzXzY0Yml0X2RvbWFpbihkKSkKKyAgICB7CisgICAgICAgIHJlcyA9IGZkdF9wcm9wZXJ0 eV9zdHJpbmcoZmR0LCAiY29tcGF0aWJsZSIsICJhcm0sYXJtdjctdGltZXIiKTsKKyAgICAgICAg aWYgKCByZXMgKQorICAgICAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9IGVsc2UgeworICAgICAg ICByZXMgPSBmZHRfcHJvcGVydHlfc3RyaW5nKGZkdCwgImNvbXBhdGlibGUiLCAiYXJtLGFybXY4 LXRpbWVyIik7CisgICAgICAgIGlmICggcmVzICkKKyAgICAgICAgICAgIHJldHVybiByZXM7Cisg ICAgfQorCisgICAgc2V0X2ludGVycnVwdF9wcGkoaW50cnNbMF0sIEdVRVNUX1RJTUVSX1BIWVNf U19QUEksIDB4ZiwgRFRfSVJRX1RZUEVfTEVWRUxfTE9XKTsKKyAgICBzZXRfaW50ZXJydXB0X3Bw aShpbnRyc1sxXSwgR1VFU1RfVElNRVJfUEhZU19OU19QUEksIDB4ZiwgRFRfSVJRX1RZUEVfTEVW RUxfTE9XKTsKKyAgICBzZXRfaW50ZXJydXB0X3BwaShpbnRyc1syXSwgR1VFU1RfVElNRVJfVklS VF9QUEksIDB4ZiwgRFRfSVJRX1RZUEVfTEVWRUxfTE9XKTsKKworICAgIHJlcyA9IGZkdF9wcm9w ZXJ0eShmZHQsICJpbnRlcnJ1cHRzIiwgaW50cnMsIHNpemVvZiAoaW50cnNbMF0pICogMyk7Cisg ICAgaWYgKCByZXMgKQorICAgICAgICByZXR1cm4gcmVzOworCisgICAgcmVzID0gZmR0X3Byb3Bl cnR5X2NlbGwoZmR0LCAiaW50ZXJydXB0LXBhcmVudCIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR1VFU1RfUEhBTkRMRV9HSUMpOworICAgIGlmIChyZXMpCisgICAgICAgIHJldHVybiBy ZXM7CisKKyAgICByZXMgPSBmZHRfZW5kX25vZGUoZmR0KTsKKyAgICByZXR1cm4gcmVzOworfQor CisvKgorICogVGhlIG1heCBzaXplIGZvciBEVCBpcyAyTUIuIEhvd2V2ZXIsIHRoZSBnZW5lcmF0 ZWQgRFQgaXMgc21hbGwsIDRLQgorICogYXJlIGVub3VnaCBmb3Igbm93LCBidXQgd2UgbWlnaHQg aGF2ZSB0byBpbmNyZWFzZSBpdCBpbiB0aGUgZmVhdHVyZS4KKyAqLworI2RlZmluZSBET01VX0RU Ql9TSVpFIDQwOTYKK3N0YXRpYyBpbnQgcHJlcGFyZV9kdGJfZG9tVShzdHJ1Y3QgZG9tYWluICpk LCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQoreworICAgIGludCBhZGRyY2VsbHMsIHNpemVj ZWxsczsKKyAgICBpbnQgcmV0OworCisgICAgYWRkcmNlbGxzID0gZHRfY2hpbGRfbl9hZGRyX2Nl bGxzKGR0X2hvc3QpOworICAgIHNpemVjZWxscyA9IGR0X2NoaWxkX25fc2l6ZV9jZWxscyhkdF9o b3N0KTsKKworICAgIGtpbmZvLT5mZHQgPSB4bWFsbG9jX2J5dGVzKERPTVVfRFRCX1NJWkUpOwor ICAgIGlmICgga2luZm8tPmZkdCA9PSBOVUxMICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisK KyAgICByZXQgPSBmZHRfY3JlYXRlKGtpbmZvLT5mZHQsIERPTVVfRFRCX1NJWkUpOworICAgIGlm ICggcmV0IDwgMCApCisgICAgICAgIGdvdG8gZXJyOworCisgICAgcmV0ID0gZmR0X2ZpbmlzaF9y ZXNlcnZlbWFwKGtpbmZvLT5mZHQpOworICAgIGlmICggcmV0IDwgMCApCisgICAgICAgIGdvdG8g ZXJyOworCisgICAgcmV0ID0gZmR0X2JlZ2luX25vZGUoa2luZm8tPmZkdCwgIi8iKTsKKyAgICBp ZiAoIHJldCA8IDAgKQorICAgICAgICBnb3RvIGVycjsKKworICAgIHJldCA9IGZkdF9wcm9wZXJ0 eV9jZWxsKGtpbmZvLT5mZHQsICIjYWRkcmVzcy1jZWxscyIsIGFkZHJjZWxscyk7CisgICAgaWYg KCByZXQgKQorICAgICAgICBnb3RvIGVycjsKKworICAgIHJldCA9IGZkdF9wcm9wZXJ0eV9jZWxs KGtpbmZvLT5mZHQsICIjc2l6ZS1jZWxscyIsIHNpemVjZWxscyk7CisgICAgaWYgKCByZXQgKQor ICAgICAgICBnb3RvIGVycjsKKworICAgIHJldCA9IG1ha2VfY2hvc2VuX25vZGUoa2luZm8pOwor ICAgIGlmICggcmV0ICkKKyAgICAgICAgZ290byBlcnI7CisKKyAgICByZXQgPSBtYWtlX2h5cGVy dmlzb3Jfbm9kZShkLCBraW5mbywgYWRkcmNlbGxzLCBzaXplY2VsbHMpOworICAgIGlmICggcmV0 ICkKKyAgICAgICAgZ290byBlcnI7CisKKyAgICByZXQgPSBtYWtlX3BzY2lfbm9kZShraW5mby0+ ZmR0LCBOVUxMKTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGdvdG8gZXJyOworCisgICAgcmV0 ID0gbWFrZV9jcHVzX25vZGUoZCwga2luZm8tPmZkdCwgTlVMTCk7CisgICAgaWYgKCByZXQgKQor ICAgICAgICBnb3RvIGVycjsKKworICAgIHJldCA9IG1ha2VfbWVtb3J5X25vZGUoZCwga2luZm8t PmZkdCwgYWRkcmNlbGxzLCBzaXplY2VsbHMsIGtpbmZvKTsKKyAgICBpZiAoIHJldCApCisgICAg ICAgIGdvdG8gZXJyOworCisgICAgcmV0ID0gbWFrZV9naWNfZG9tVV9ub2RlKGQsIGtpbmZvLT5m ZHQsIGFkZHJjZWxscywgc2l6ZWNlbGxzKTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGdvdG8g ZXJyOworCisgICAgcmV0ID0gbWFrZV90aW1lcl9kb21VX25vZGUoZCwga2luZm8tPmZkdCk7Cisg ICAgaWYgKCByZXQgKQorICAgICAgICBnb3RvIGVycjsKKworICAgIHJldCA9IGZkdF9lbmRfbm9k ZShraW5mby0+ZmR0KTsKKyAgICBpZiAoIHJldCA8IDAgKQorICAgICAgICBnb3RvIGVycjsKKwor ICAgIHJldCA9IGZkdF9maW5pc2goa2luZm8tPmZkdCk7CisgICAgaWYgKCByZXQgPCAwICkKKyAg ICAgICAgZ290byBlcnI7CisKKyAgICByZXR1cm4gMDsKKworICBlcnI6CisgICAgcHJpbnRrKCJE ZXZpY2UgdHJlZSBnZW5lcmF0aW9uIGZhaWxlZCAoJWQpLlxuIiwgcmV0KTsKKyAgICB4ZnJlZShr aW5mby0+ZmR0KTsKKyAgICByZXR1cm4gLUVJTlZBTDsKK30KKwogc3RhdGljIGludCBwcmVwYXJl X2R0Yl9od2RvbShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQog ewogICAgIGNvbnN0IHAybV90eXBlX3QgZGVmYXVsdF9wMm10ID0gcDJtX21taW9fZGlyZWN0X2M7 CkBAIC0yMjU4LDYgKzI0NjcsMTAgQEAgc3RhdGljIGludCBfX2luaXQgY29uc3RydWN0X2RvbVUo c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlKQogICAgIGQtPmFy Y2gudHlwZSA9IGtpbmZvLnR5cGU7CiAgICAgYWxsb2NhdGVfbWVtb3J5KGQsICZraW5mbyk7CiAK KyAgICByYyA9IHByZXBhcmVfZHRiX2RvbVUoZCwgJmtpbmZvKTsKKyAgICBpZiAoIHJjIDwgMCAp CisgICAgICAgIHJldHVybiByYzsKKwogICAgIHJldHVybiBfX2NvbnN0cnVjdF9kb21haW4oZCwg JmtpbmZvKTsKIH0KIAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs