From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 18/25] xen/arm: generate a simple device tree for domUs Date: Tue, 31 Jul 2018 16:28:01 -0700 Message-ID: <1533079688-9541-18-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 LmNvbT4KLS0tCkNoYW5nZXMgaW4gdjM6Ci0gcmVtb3ZlIENPTkZJR19BQ1BJIGZvciBtYWtlX2No b3Nlbl9ub2RlCi0gcmVtb3ZlIG1ha2VfaHlwZXJ2aXNvcl9ub2RlIHVudGlsIGFsbCBYZW4gcmVs YXRlZCBmdW5jdGlvbmFsaXRpZXMKICAoZXZ0Y2hucywgZ3JhbnQgdGFibGUsIGV0Yy4pIHdvcmsg Y29ycmVjdGx5CgpDaGFuZ2VzIGluIHYyOgotIG1vdmUgcHJlcGFyZV9kdGIgcmVuYW1lIHRvIHBy ZXZpb3VzIHBhdGNoCi0gdXNlIHN3aXRjaCBmb3IgdGhlIGdpYyB2ZXJzaW9uCi0gdXNlIGFybSxn aWMtNDAwIGluc3RlYWQgb2YgYXJtLGNvcnRleC1hMTUtZ2ljCi0gYWRkIEB1bml0LWFkZHJlc3Mg aW4gdGhlIGdpYyBub2RlIG5hbWUKLSBhZGQgY29tbWVudCBvbiBET01VX0RUQl9TSVpFCi0tLQog eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIHwgMjExICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMjA5IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5j IGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCmluZGV4IGRmYTc0ZTQuLjE2N2E1NmUgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0v ZG9tYWluX2J1aWxkLmMKQEAgLTEwNTcsNyArMTA1Nyw2IEBAIHN0YXRpYyBpbnQgX19pbml0IG1h a2VfdGltZXJfbm9kZShjb25zdCBzdHJ1Y3QgZG9tYWluICpkLCB2b2lkICpmZHQsCiAgICAgcmV0 dXJuIHJlczsKIH0KIAotI2lmZGVmIENPTkZJR19BQ1BJCiAvKgogICogVGhpcyBmdW5jdGlvbiBp cyB1c2VkIGFzIHBhcnQgb2YgdGhlIGRldmljZSB0cmVlIGdlbmVyYXRpb24gZm9yIERvbTAKICAq IG9uIEFDUEkgc3lzdGVtcywgYW5kIERvbVVzIHN0YXJ0ZWQgZGlyZWN0bHkgZnJvbSBYZW4gYmFz ZWQgb24gZGV2aWNlCkBAIC0xMTAzLDcgKzExMDIsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBtYWtl X2Nob3Nlbl9ub2RlKGNvbnN0IHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8pCiAKICAgICByZXR1 cm4gcmVzOwogfQotI2VuZGlmCiAKIHN0YXRpYyBpbnQgX19pbml0IG1hcF9pcnFfdG9fZG9tYWlu KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBib29sIG5lZWRfbWFwcGluZywgY29uc3QgY2hhciAqZGV2bmFtZSkK QEAgLTE0OTYsNiArMTQ5NCwyMTEgQEAgc3RhdGljIGludCBfX2luaXQgaGFuZGxlX25vZGUoc3Ry dWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbywKICAgICByZXR1cm4gcmVz OwogfQogCitzdGF0aWMgaW50IF9faW5pdCBtYWtlX2dpY19kb21VX25vZGUoY29uc3Qgc3RydWN0 IGRvbWFpbiAqZCwgdm9pZCAqZmR0LCBpbnQgYWRkcmNlbGxzLCBpbnQgc2l6ZWNlbGxzKQorewor ICAgIGludCByZXMgPSAwOworICAgIGludCByZWdfc2l6ZSA9IGFkZHJjZWxscyArIHNpemVjZWxs czsKKyAgICBpbnQgbnJfY2VsbHMgPSByZWdfc2l6ZSAqIDI7CisgICAgX19iZTMyIHJlZ1tucl9j ZWxsc107CisgICAgX19iZTMyICpjZWxsczsKKworICAgIHN3aXRjaCAoIGdpY19od192ZXJzaW9u KCkgKQorICAgIHsKKyAgICBjYXNlIEdJQ19WMzoKKyAgICAgICAgcmVzID0gZmR0X2JlZ2luX25v ZGUoZmR0LCAiaW50ZXJydXB0LWNvbnRyb2xsZXJAIl9fc3RyaW5naWZ5KEdVRVNUX0dJQ1YzX0dJ Q0RfQkFTRSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEdJQ19WMjoKKyAgICAgICAgcmVz ID0gZmR0X2JlZ2luX25vZGUoZmR0LCAiaW50ZXJydXB0LWNvbnRyb2xsZXJAIl9fc3RyaW5naWZ5 KEdVRVNUX0dJQ0RfQkFTRSkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAg ICBwYW5pYygiVW5zdXBwb3J0ZWQgR0lDIHZlcnNpb24iKTsKKyAgICB9CisKKyAgICBpZiAoIHJl cyApCisgICAgICAgIHJldHVybiByZXM7CisKKyAgICByZXMgPSBmZHRfcHJvcGVydHlfY2VsbChm ZHQsICIjYWRkcmVzcy1jZWxscyIsIDApOworICAgIGlmICggcmVzICkKKyAgICAgICAgcmV0dXJu IHJlczsKKworICAgIHJlcyA9IGZkdF9wcm9wZXJ0eV9jZWxsKGZkdCwgIiNpbnRlcnJ1cHQtY2Vs bHMiLCAzKTsKKyAgICBpZiAoIHJlcyApCisgICAgICAgIHJldHVybiByZXM7CisKKyAgICByZXMg PSBmZHRfcHJvcGVydHkoZmR0LCAiaW50ZXJydXB0LWNvbnRyb2xsZXIiLCBOVUxMLCAwKTsKKyAg ICBpZiAoIHJlcyApCisgICAgICAgIHJldHVybiByZXM7CisKKyAgICBzd2l0Y2ggKCBnaWNfaHdf dmVyc2lvbigpICkKKyAgICB7CisgICAgY2FzZSBHSUNfVjM6CisgICAgeworICAgICAgICBjb25z dCB1aW50NjRfdCBnaWNkX2Jhc2UgPSBHVUVTVF9HSUNWM19HSUNEX0JBU0U7CisgICAgICAgIGNv bnN0IHVpbnQ2NF90IGdpY2Rfc2l6ZSA9IEdVRVNUX0dJQ1YzX0dJQ0RfU0laRTsKKyAgICAgICAg Y29uc3QgdWludDY0X3QgZ2ljcjBfYmFzZSA9IEdVRVNUX0dJQ1YzX0dJQ1IwX0JBU0U7CisgICAg ICAgIGNvbnN0IHVpbnQ2NF90IGdpY3IwX3NpemUgPSBHVUVTVF9HSUNWM19HSUNSMF9TSVpFOwor CisgICAgICAgIHJlcyA9IGZkdF9wcm9wZXJ0eV9zdHJpbmcoZmR0LCAiY29tcGF0aWJsZSIsICJh cm0sZ2ljLXYzIik7CisgICAgICAgIGlmICggcmVzICkKKyAgICAgICAgICAgIHJldHVybiByZXM7 CisKKyAgICAgICAgY2VsbHMgPSAmcmVnWzBdOworICAgICAgICBkdF9jaGlsZF9zZXRfcmFuZ2Uo JmNlbGxzLCBhZGRyY2VsbHMsIHNpemVjZWxscywgZ2ljZF9iYXNlLCBnaWNkX3NpemUpOworICAg ICAgICBkdF9jaGlsZF9zZXRfcmFuZ2UoJmNlbGxzLCBhZGRyY2VsbHMsIHNpemVjZWxscywgZ2lj cjBfYmFzZSwgZ2ljcjBfc2l6ZSk7CisgICAgICAgIHJlcyA9IGZkdF9wcm9wZXJ0eShmZHQsICJy ZWciLCByZWcsIHNpemVvZihyZWcpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug R0lDX1YyOgorICAgIHsKKyAgICAgICAgY29uc3QgdWludDY0X3QgZ2ljZF9iYXNlID0gR1VFU1Rf R0lDRF9CQVNFOworICAgICAgICBjb25zdCB1aW50NjRfdCBnaWNkX3NpemUgPSBHVUVTVF9HSUNE X1NJWkU7CisgICAgICAgIGNvbnN0IHVpbnQ2NF90IGdpY2NfYmFzZSA9IEdVRVNUX0dJQ0NfQkFT RTsKKyAgICAgICAgY29uc3QgdWludDY0X3QgZ2ljY19zaXplID0gR1VFU1RfR0lDQ19TSVpFOwor CisgICAgICAgIHJlcyA9IGZkdF9wcm9wZXJ0eV9zdHJpbmcoZmR0LCAiY29tcGF0aWJsZSIsICJh cm0sZ2ljLTQwMCIpOworICAgICAgICBpZiAoIHJlcyApCisgICAgICAgICAgICByZXR1cm4gcmVz OworCisgICAgICAgIGNlbGxzID0gJnJlZ1swXTsKKyAgICAgICAgZHRfY2hpbGRfc2V0X3Jhbmdl KCZjZWxscywgYWRkcmNlbGxzLCBzaXplY2VsbHMsIGdpY2RfYmFzZSwgZ2ljZF9zaXplKTsKKyAg ICAgICAgZHRfY2hpbGRfc2V0X3JhbmdlKCZjZWxscywgYWRkcmNlbGxzLCBzaXplY2VsbHMsIGdp Y2NfYmFzZSwgZ2ljY19zaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6 CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJlcyA9IGZkdF9wcm9wZXJ0eShmZHQsICJy ZWciLCByZWcsIHNpemVvZihyZWcpKTsKKyAgICBpZiAocmVzKQorICAgICAgICByZXR1cm4gcmVz OworCisgICAgcmVzID0gZmR0X3Byb3BlcnR5X2NlbGwoZmR0LCAibGludXgscGhhbmRsZSIsIEdV RVNUX1BIQU5ETEVfR0lDKTsKKyAgICBpZiAocmVzKQorICAgICAgICByZXR1cm4gcmVzOworCisg ICAgcmVzID0gZmR0X3Byb3BlcnR5X2NlbGwoZmR0LCAicGhhbmRsZSIsIEdVRVNUX1BIQU5ETEVf R0lDKTsKKyAgICBpZiAocmVzKQorICAgICAgICByZXR1cm4gcmVzOworCisgICAgcmVzID0gZmR0 X2VuZF9ub2RlKGZkdCk7CisKKyAgICByZXR1cm4gcmVzOworfQorCitzdGF0aWMgaW50IF9faW5p dCBtYWtlX3RpbWVyX2RvbVVfbm9kZShjb25zdCBzdHJ1Y3QgZG9tYWluICpkLCB2b2lkICpmZHQp Cit7CisgICAgaW50IHJlczsKKyAgICBnaWNfaW50ZXJydXB0X3QgaW50cnNbM107CisKKyAgICBy ZXMgPSBmZHRfYmVnaW5fbm9kZShmZHQsICJ0aW1lciIpOworICAgIGlmICggcmVzICkKKyAgICAg ICAgcmV0dXJuIHJlczsKKworICAgIGlmICghaXNfNjRiaXRfZG9tYWluKGQpKQorICAgIHsKKyAg ICAgICAgcmVzID0gZmR0X3Byb3BlcnR5X3N0cmluZyhmZHQsICJjb21wYXRpYmxlIiwgImFybSxh cm12Ny10aW1lciIpOworICAgICAgICBpZiAoIHJlcyApCisgICAgICAgICAgICByZXR1cm4gcmVz OworICAgIH0gZWxzZSB7CisgICAgICAgIHJlcyA9IGZkdF9wcm9wZXJ0eV9zdHJpbmcoZmR0LCAi Y29tcGF0aWJsZSIsICJhcm0sYXJtdjgtdGltZXIiKTsKKyAgICAgICAgaWYgKCByZXMgKQorICAg ICAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisKKyAgICBzZXRfaW50ZXJydXB0X3BwaShpbnRy c1swXSwgR1VFU1RfVElNRVJfUEhZU19TX1BQSSwgMHhmLCBEVF9JUlFfVFlQRV9MRVZFTF9MT1cp OworICAgIHNldF9pbnRlcnJ1cHRfcHBpKGludHJzWzFdLCBHVUVTVF9USU1FUl9QSFlTX05TX1BQ SSwgMHhmLCBEVF9JUlFfVFlQRV9MRVZFTF9MT1cpOworICAgIHNldF9pbnRlcnJ1cHRfcHBpKGlu dHJzWzJdLCBHVUVTVF9USU1FUl9WSVJUX1BQSSwgMHhmLCBEVF9JUlFfVFlQRV9MRVZFTF9MT1cp OworCisgICAgcmVzID0gZmR0X3Byb3BlcnR5KGZkdCwgImludGVycnVwdHMiLCBpbnRycywgc2l6 ZW9mIChpbnRyc1swXSkgKiAzKTsKKyAgICBpZiAoIHJlcyApCisgICAgICAgIHJldHVybiByZXM7 CisKKyAgICByZXMgPSBmZHRfcHJvcGVydHlfY2VsbChmZHQsICJpbnRlcnJ1cHQtcGFyZW50IiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVUVTVF9QSEFORExFX0dJQyk7CisgICAgaWYg KHJlcykKKyAgICAgICAgcmV0dXJuIHJlczsKKworICAgIHJlcyA9IGZkdF9lbmRfbm9kZShmZHQp OworICAgIHJldHVybiByZXM7Cit9CisKKy8qCisgKiBUaGUgbWF4IHNpemUgZm9yIERUIGlzIDJN Qi4gSG93ZXZlciwgdGhlIGdlbmVyYXRlZCBEVCBpcyBzbWFsbCwgNEtCCisgKiBhcmUgZW5vdWdo IGZvciBub3csIGJ1dCB3ZSBtaWdodCBoYXZlIHRvIGluY3JlYXNlIGl0IGluIHRoZSBmZWF0dXJl LgorICovCisjZGVmaW5lIERPTVVfRFRCX1NJWkUgNDA5Ngorc3RhdGljIGludCBfX2luaXQgcHJl cGFyZV9kdGJfZG9tVShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZv KQoreworICAgIGludCBhZGRyY2VsbHMsIHNpemVjZWxsczsKKyAgICBpbnQgcmV0OworCisgICAg YWRkcmNlbGxzID0gZHRfY2hpbGRfbl9hZGRyX2NlbGxzKGR0X2hvc3QpOworICAgIHNpemVjZWxs cyA9IGR0X2NoaWxkX25fc2l6ZV9jZWxscyhkdF9ob3N0KTsKKworICAgIGtpbmZvLT5mZHQgPSB4 bWFsbG9jX2J5dGVzKERPTVVfRFRCX1NJWkUpOworICAgIGlmICgga2luZm8tPmZkdCA9PSBOVUxM ICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICByZXQgPSBmZHRfY3JlYXRlKGtpbmZv LT5mZHQsIERPTVVfRFRCX1NJWkUpOworICAgIGlmICggcmV0IDwgMCApCisgICAgICAgIGdvdG8g ZXJyOworCisgICAgcmV0ID0gZmR0X2ZpbmlzaF9yZXNlcnZlbWFwKGtpbmZvLT5mZHQpOworICAg IGlmICggcmV0IDwgMCApCisgICAgICAgIGdvdG8gZXJyOworCisgICAgcmV0ID0gZmR0X2JlZ2lu X25vZGUoa2luZm8tPmZkdCwgIi8iKTsKKyAgICBpZiAoIHJldCA8IDAgKQorICAgICAgICBnb3Rv IGVycjsKKworICAgIHJldCA9IGZkdF9wcm9wZXJ0eV9jZWxsKGtpbmZvLT5mZHQsICIjYWRkcmVz cy1jZWxscyIsIGFkZHJjZWxscyk7CisgICAgaWYgKCByZXQgKQorICAgICAgICBnb3RvIGVycjsK KworICAgIHJldCA9IGZkdF9wcm9wZXJ0eV9jZWxsKGtpbmZvLT5mZHQsICIjc2l6ZS1jZWxscyIs IHNpemVjZWxscyk7CisgICAgaWYgKCByZXQgKQorICAgICAgICBnb3RvIGVycjsKKworICAgIHJl dCA9IG1ha2VfY2hvc2VuX25vZGUoa2luZm8pOworICAgIGlmICggcmV0ICkKKyAgICAgICAgZ290 byBlcnI7CisKKyAgICByZXQgPSBtYWtlX3BzY2lfbm9kZShraW5mby0+ZmR0LCBOVUxMKTsKKyAg ICBpZiAoIHJldCApCisgICAgICAgIGdvdG8gZXJyOworCisgICAgcmV0ID0gbWFrZV9jcHVzX25v ZGUoZCwga2luZm8tPmZkdCwgTlVMTCk7CisgICAgaWYgKCByZXQgKQorICAgICAgICBnb3RvIGVy cjsKKworICAgIHJldCA9IG1ha2VfbWVtb3J5X25vZGUoZCwga2luZm8tPmZkdCwgYWRkcmNlbGxz LCBzaXplY2VsbHMsIGtpbmZvKTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGdvdG8gZXJyOwor CisgICAgcmV0ID0gbWFrZV9naWNfZG9tVV9ub2RlKGQsIGtpbmZvLT5mZHQsIGFkZHJjZWxscywg c2l6ZWNlbGxzKTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGdvdG8gZXJyOworCisgICAgcmV0 ID0gbWFrZV90aW1lcl9kb21VX25vZGUoZCwga2luZm8tPmZkdCk7CisgICAgaWYgKCByZXQgKQor ICAgICAgICBnb3RvIGVycjsKKworICAgIHJldCA9IGZkdF9lbmRfbm9kZShraW5mby0+ZmR0KTsK KyAgICBpZiAoIHJldCA8IDAgKQorICAgICAgICBnb3RvIGVycjsKKworICAgIHJldCA9IGZkdF9m aW5pc2goa2luZm8tPmZkdCk7CisgICAgaWYgKCByZXQgPCAwICkKKyAgICAgICAgZ290byBlcnI7 CisKKyAgICByZXR1cm4gMDsKKworICBlcnI6CisgICAgcHJpbnRrKCJEZXZpY2UgdHJlZSBnZW5l cmF0aW9uIGZhaWxlZCAoJWQpLlxuIiwgcmV0KTsKKyAgICB4ZnJlZShraW5mby0+ZmR0KTsKKyAg ICByZXR1cm4gLUVJTlZBTDsKK30KKwogc3RhdGljIGludCBfX2luaXQgcHJlcGFyZV9kdGJfaHdk b20oc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykKIHsKICAgICBj b25zdCBwMm1fdHlwZV90IGRlZmF1bHRfcDJtdCA9IHAybV9tbWlvX2RpcmVjdF9jOwpAQCAtMjM2 Niw2ICsyNTY5LDEwIEBAIHN0YXRpYyBpbnQgX19pbml0IGNvbnN0cnVjdF9kb21VKHN0cnVjdCBk b21haW4gKmQsIHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkKICNlbmRpZgogICAgIGFsbG9j YXRlX21lbW9yeShkLCAma2luZm8pOwogCisgICAgcmMgPSBwcmVwYXJlX2R0Yl9kb21VKGQsICZr aW5mbyk7CisgICAgaWYgKCByYyA8IDAgKQorICAgICAgICByZXR1cm4gcmM7CisKICAgICByZXR1 cm4gX19jb25zdHJ1Y3RfZG9tYWluKGQsICZraW5mbyk7CiB9CiAKLS0gCjEuOS4xCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==