From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shannon Zhao Subject: [PATCH v6 08/22] arm/acpi: Parse MADT to map logical cpu to MPIDR and get cpu_possible_map Date: Sat, 27 Feb 2016 14:33:26 +0800 Message-ID: <1456554806-10204-1-git-send-email-zhaoshenglong@huawei.com> References: <1456467780-8476-9-git-send-email-zhaoshenglong@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1456467780-8476-9-git-send-email-zhaoshenglong@huawei.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: ian.campbell@citrix.com, peter.huangpeng@huawei.com, stefano.stabellini@citrix.com, shannon.zhao@linaro.org, Jan Beulich , zhaoshenglong@huawei.com List-Id: xen-devel@lists.xenproject.org RnJvbTogUGFydGggRGl4aXQgPHBhcnRoLmRpeGl0QGxpbmFyby5vcmc+CgpNQURUIGNvbnRhaW5z IHRoZSBpbmZvcm1hdGlvbiBmb3IgTVBJRFIgd2hpY2ggaXMgZXNzZW50aWFsIGZvciBTTVAKaW5p dGlhbGl6YXRpb24sIHBhcnNlIHRoZSBHSUMgY3B1IGludGVyZmFjZSBzdHJ1Y3R1cmVzIHRvIGdl dCB0aGUgTVBJRFIKdmFsdWUgYW5kIG1hcCBpdCB0byBjcHVfbG9naWNhbF9tYXAoKSwgYW5kIGFk ZCBlbmFibGVkIGNwdSB3aXRoIHZhbGlkCk1QSURSIGludG8gY3B1X3Bvc3NpYmxlX21hcC4KCk1v dmUgQkFEX01BRFRfRU5UUlkgdG8gY29tbW9uIHBsYWNlLCBwYXJlbnRoZXNpemUgaXRzIHBhcmFt ZXRlcnMgYW5kCmRyb3AgdGhlIHBvaW50ZXIgY2FzdC4KCkNjOiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEhhbmp1biBHdW8gPGhhbmp1bi5ndW9AbGluYXJv Lm9yZz4KU2lnbmVkLW9mZi1ieTogVG9tYXN6IE5vd2lja2kgPHRvbWFzei5ub3dpY2tpQGxpbmFy by5vcmc+ClNpZ25lZC1vZmYtYnk6IE5hcmVzaCBCaGF0IDxuYXJlc2guYmhhdEBsaW5hcm8ub3Jn PgpTaWduZWQtb2ZmLWJ5OiBQYXJ0aCBEaXhpdCA8cGFydGguZGl4aXRAbGluYXJvLm9yZz4KU2ln bmVkLW9mZi1ieTogU2hhbm5vbiBaaGFvIDxzaGFubm9uLnpoYW9AbGluYXJvLm9yZz4KUmV2aWV3 ZWQtYnk6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5pQGV1LmNpdHJpeC5j b20+Ci0tLQogeGVuL2FyY2gvYXJtL2FjcGkvYm9vdC5jICAgfCAxMjEgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJjaC94ODYvYWNwaS9ib290LmMg ICB8ICAgNCAtLQogeGVuL2luY2x1ZGUvYXNtLWFybS9hY3BpLmggfCAgIDEgKwogeGVuL2luY2x1 ZGUveGVuL2FjcGkuaCAgICAgfCAgIDQgKysKIDQgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2FjcGkvYm9v dC5jIGIveGVuL2FyY2gvYXJtL2FjcGkvYm9vdC5jCmluZGV4IDZiMzNmYmUuLmU5MzIxYzYgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9hY3BpL2Jvb3QuYworKysgYi94ZW4vYXJjaC9hcm0vYWNw aS9ib290LmMKQEAgLTMyLDYgKzMyLDEyNyBAQAogI2luY2x1ZGUgPHhlbi9tbS5oPgogCiAjaW5j bHVkZSA8YXNtL2FjcGkuaD4KKyNpbmNsdWRlIDxhc20vc21wLmg+CisKKy8qIFByb2Nlc3NvcnMg d2l0aCBlbmFibGVkIGZsYWcgYW5kIHNhbmUgTVBJRFIgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQg ZW5hYmxlZF9jcHVzOworCisvKiB0b3RhbCBudW1iZXIgb2YgY3B1cyBpbiB0aGlzIHN5c3RlbSAq Lworc3RhdGljIHVuc2lnbmVkIGludCBfX2luaXRkYXRhIHRvdGFsX2NwdXM7CisKKy8qCisgKiBh Y3BpX21hcF9naWNfY3B1X2ludGVyZmFjZSAtIGdlbmVyYXRlcyBhIGxvZ2ljYWwgY3B1IG51bWJl cgorICogYW5kIG1hcCB0byBNUElEUiByZXByZXNlbnRlZCBieSBHSUNDIHN0cnVjdHVyZQorICov CitzdGF0aWMgdm9pZCBfX2luaXQKK2FjcGlfbWFwX2dpY19jcHVfaW50ZXJmYWNlKHN0cnVjdCBh Y3BpX21hZHRfZ2VuZXJpY19pbnRlcnJ1cHQgKnByb2Nlc3NvcikKK3sKKyAgICBpbnQgaTsKKyAg ICB1NjQgbXBpZHIgPSBwcm9jZXNzb3ItPmFybV9tcGlkciAmIE1QSURSX0hXSURfTUFTSzsKKyAg ICBib29sX3QgZW5hYmxlZCA9ICEhKHByb2Nlc3Nvci0+ZmxhZ3MgJiBBQ1BJX01BRFRfRU5BQkxF RCk7CisKKyAgICBpZiAoIG1waWRyID09IE1QSURSX0lOVkFMSUQgKQorICAgIHsKKyAgICAgICAg cHJpbnRrKCJTa2lwIE1BRFQgY3B1IGVudHJ5IHdpdGggaW52YWxpZCBNUElEUlxuIik7CisgICAg ICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0b3RhbF9jcHVzKys7CisgICAgaWYgKCAhZW5hYmxl ZCApCisgICAgICAgIHJldHVybjsKKworICAgIGlmICggZW5hYmxlZF9jcHVzID49ICBOUl9DUFVT ICkKKyAgICB7CisgICAgICAgIHByaW50aygiTlJfQ1BVUyBsaW1pdCBvZiAlZCByZWFjaGVkLCBQ cm9jZXNzb3IgJWQvMHglIlBSSXg2NCIgaWdub3JlZC5cbiIsCisgICAgICAgICAgICAgICBOUl9D UFVTLCB0b3RhbF9jcHVzLCBtcGlkcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAv KiBDaGVjayBpZiBHSUNDIHN0cnVjdHVyZSBvZiBib290IENQVSBpcyBhdmFpbGFibGUgaW4gdGhl IE1BRFQgKi8KKyAgICBpZiAoIChlbmFibGVkX2NwdXMgPT0gMCkgJiYgKGNwdV9sb2dpY2FsX21h cCgwKSAhPSBtcGlkcikgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKCJGaXJtd2FyZSBidWcsIGlu dmFsaWQgQ1BVIE1QSURSIGZvciBjcHUwOiAweCUiUFJJeDY0IiBpbiBNQURUXG4iLAorICAgICAg ICAgICAgICAgbXBpZHIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyoKKyAgICAg KiBEdXBsaWNhdGUgTVBJRFJzIGFyZSBhIHJlY2lwZSBmb3IgZGlzYXN0ZXIuIFNjYW4KKyAgICAg KiBhbGwgaW5pdGlhbGl6ZWQgZW50cmllcyBhbmQgY2hlY2sgZm9yCisgICAgICogZHVwbGljYXRl cy4gSWYgYW55IGlzIGZvdW5kIGp1c3QgaWdub3JlIHRoZSBDUFUuCisgICAgICovCisgICAgZm9y ICggaSA9IDA7IGkgPCBlbmFibGVkX2NwdXM7IGkrKyApCisgICAgeworICAgICAgICBpZiAoIGNw dV9sb2dpY2FsX21hcChpKSA9PSBtcGlkciApCisgICAgICAgIHsKKyAgICAgICAgICAgIHByaW50 aygiRmlybXdhcmUgYnVnLCBkdXBsaWNhdGUgQ1BVIE1QSURSOiAweCUiUFJJeDY0IiBpbiBNQURU XG4iLAorICAgICAgICAgICAgICAgICAgIG1waWRyKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg ICAgICAgfQorICAgIH0KKworICAgIGlmICggIWFjcGlfcHNjaV9wcmVzZW50KCkgKQorICAgICAg ICByZXR1cm47CisKKyAgICAvKiBDUFUgMCB3YXMgYWxyZWFkeSBpbml0aWFsaXplZCAqLworICAg IGlmICggZW5hYmxlZF9jcHVzICkKKyAgICB7CisgICAgICAgIGlmICggYXJjaF9jcHVfaW5pdChl bmFibGVkX2NwdXMsIE5VTEwpIDwgMCApCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg LyogbWFwIHRoZSBsb2dpY2FsIGNwdSBpZCB0byBjcHUgTVBJRFIgKi8KKyAgICAgICAgY3B1X2xv Z2ljYWxfbWFwKGVuYWJsZWRfY3B1cykgPSBtcGlkcjsKKyAgICB9CisKKyAgICBlbmFibGVkX2Nw dXMrKzsKK30KKworc3RhdGljIGludCBfX2luaXQKK2FjcGlfcGFyc2VfZ2ljX2NwdV9pbnRlcmZh Y2Uoc3RydWN0IGFjcGlfc3VidGFibGVfaGVhZGVyICpoZWFkZXIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgZW5kKQoreworICAgIHN0cnVjdCBhY3Bp X21hZHRfZ2VuZXJpY19pbnRlcnJ1cHQgKnByb2Nlc3NvciA9CisgICAgICAgICAgICAgICBjb250 YWluZXJfb2YoaGVhZGVyLCBzdHJ1Y3QgYWNwaV9tYWR0X2dlbmVyaWNfaW50ZXJydXB0LCBoZWFk ZXIpOworCisgICAgaWYgKCBCQURfTUFEVF9FTlRSWShwcm9jZXNzb3IsIGVuZCkgKQorICAgICAg ICByZXR1cm4gLUVJTlZBTDsKKworICAgIGFjcGlfdGFibGVfcHJpbnRfbWFkdF9lbnRyeShoZWFk ZXIpOworICAgIGFjcGlfbWFwX2dpY19jcHVfaW50ZXJmYWNlKHByb2Nlc3Nvcik7CisgICAgcmV0 dXJuIDA7Cit9CisKKy8qIFBhcnNlIEdJQyBjcHUgaW50ZXJmYWNlIGVudHJpZXMgaW4gTUFEVCBm b3IgU01QIGluaXQgKi8KK3ZvaWQgX19pbml0IGFjcGlfc21wX2luaXRfY3B1cyh2b2lkKQorewor ICAgIGludCBjb3VudCwgaTsKKworICAgIC8qCisgICAgICogZG8gYSBwYXJ0aWFsIHdhbGsgb2Yg TUFEVCB0byBkZXRlcm1pbmUgaG93IG1hbnkgQ1BVcworICAgICAqIHdlIGhhdmUgaW5jbHVkaW5n IGRpc2FibGVkIENQVXMsIGFuZCBnZXQgaW5mb3JtYXRpb24KKyAgICAgKiB3ZSBuZWVkIGZvciBT TVAgaW5pdAorICAgICAqLworICAgIGNvdW50ID0gYWNwaV90YWJsZV9wYXJzZV9tYWR0KEFDUElf TUFEVF9UWVBFX0dFTkVSSUNfSU5URVJSVVBULAorICAgICAgICAgICAgICAgICAgICBhY3BpX3Bh cnNlX2dpY19jcHVfaW50ZXJmYWNlLCAwKTsKKworICAgIGlmICggY291bnQgPD0gMCApCisgICAg eworICAgICAgICBwcmludGsoIkVycm9yIHBhcnNpbmcgR0lDIENQVSBpbnRlcmZhY2UgZW50cnlc biIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCBlbmFibGVkX2NwdXMgPiAx ICkKKyAgICB7CisgICAgICAgIHByaW50aygiTUFEVCBtaXNzaW5nIGJvb3QgQ1BVIE1QSURSLCBu b3QgZW5hYmxpbmcgc2Vjb25kYXJpZXNcbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg ICAgZm9yICggaSA9IDA7IGkgPCBlbmFibGVkX2NwdXM7IGkrKyApCisgICAgICAgIGNwdW1hc2tf c2V0X2NwdShpLCAmY3B1X3Bvc3NpYmxlX21hcCk7CisKKyAgICAvKiBNYWtlIGJvb3QtdXAgbG9v ayBwcmV0dHkgKi8KKyAgICBwcmludGsoIiVkIENQVXMgZW5hYmxlZCwgJWQgQ1BVcyB0b3RhbFxu IiwgZW5hYmxlZF9jcHVzLCB0b3RhbF9jcHVzKTsKK30KIAogc3RhdGljIGludCBfX2luaXQgYWNw aV9wYXJzZV9mYWR0KHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqdGFibGUpCiB7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvYWNwaS9ib290LmMgYi94ZW4vYXJjaC94ODYvYWNwaS9ib290LmMK aW5kZXggZmFjMzZjNi4uMzg1YzBiZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2FjcGkvYm9v dC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2Jvb3QuYwpAQCAtNDMsMTAgKzQzLDYgQEAKICNp bmNsdWRlIDxtYWNoX2FwaWMuaD4KICNpbmNsdWRlIDxtYWNoX21wcGFyc2UuaD4KIAotI2RlZmlu ZSBCQURfTUFEVF9FTlRSWShlbnRyeSwgZW5kKSAoCQkJCQkgICAgXAotCQkoIWVudHJ5KSB8fCAo dW5zaWduZWQgbG9uZyllbnRyeSArIHNpemVvZigqZW50cnkpID4gZW5kIHx8ICBcCi0JCSgoc3Ry dWN0IGFjcGlfc3VidGFibGVfaGVhZGVyICopZW50cnkpLT5sZW5ndGggIT0gc2l6ZW9mKCplbnRy eSkpCi0KICNkZWZpbmUgUFJFRklYCQkJIkFDUEk6ICIKIAogYm9vbF90IF9faW5pdGRhdGEgYWNw aV9ub2lycTsJLyogc2tpcCBBQ1BJIElSUSBpbml0aWFsaXphdGlvbiAqLwpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLWFybS9hY3BpLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2FjcGkuaApp bmRleCBmMTMwNzJmLi5hMGYyZjI0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2Fj cGkuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2FjcGkuaApAQCAtMzIsNiArMzIsNyBAQAog CiBib29sX3QgX19pbml0IGFjcGlfcHNjaV9wcmVzZW50KHZvaWQpOwogYm9vbF90IF9faW5pdCBh Y3BpX3BzY2lfaHZjX3ByZXNlbnQodm9pZCk7Cit2b2lkIF9faW5pdCBhY3BpX3NtcF9pbml0X2Nw dXModm9pZCk7CiAKICNpZmRlZiBDT05GSUdfQUNQSQogZXh0ZXJuIGJvb2xfdCBhY3BpX2Rpc2Fi bGVkOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2FjcGkuaCBiL3hlbi9pbmNsdWRlL3hl bi9hY3BpLmgKaW5kZXggNzIzYTZjYS4uZjA1YjE2MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv eGVuL2FjcGkuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vYWNwaS5oCkBAIC00NCw2ICs0NCwxMCBA QAogICovCiAjZGVmaW5lIE5VTV9GSVhNQVBfQUNQSV9QQUdFUyAgNAogCisjZGVmaW5lIEJBRF9N QURUX0VOVFJZKGVudHJ5LCBlbmQpICggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICAgICAgICAgICghKGVudHJ5KSkgfHwgKHVuc2lnbmVkIGxvbmcpKGVu dHJ5KSArIHNpemVvZigqKGVudHJ5KSkgPiAoZW5kKSB8fCAgXAorICAgICAgICAgICAgICAgIChl bnRyeSktPmhlYWRlci5sZW5ndGggPCBzaXplb2YoKihlbnRyeSkpKQorCiAjaWZkZWYgQ09ORklH X0FDUElfQk9PVAogCiBlbnVtIGFjcGlfaW50ZXJydXB0X2lkIHsKLS0gCjIuMC40CgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==