From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v4] Add address translation interface using ACPI DSM From: "Luck, Tony" Message-Id: <20181015202620.23610-1-tony.luck@intel.com> Date: Mon, 15 Oct 2018 13:26:20 -0700 To: "Rafael J. Wysocki" Cc: Tony Luck , Borislav Petkov , Qiuxu Zhuo , Aristeu Rozanski , Mauro Carvalho Chehab , linux-edac@vger.kernel.org, linux-acpi@vger.kernel.org List-ID: U29tZSBuZXcgc2VydmVycyBwcm92aWRlIGFuIGludGVyZmFjZSBzbyB0aGF0IHRoZSBPUyBjYW4g YXNrIHRoZQpCSU9TIHRvIHRyYW5zbGF0ZSBhIHN5c3RlbSBwaHlzaWNhbCBhZGRyZXNzIHRvIGEg bWVtb3J5IGFkZHJlc3MKKHNvY2tldCwgbWVtb3J5IGNvbnRyb2xsZXIsIGNoYW5uZWwsIHJhbmss IGRpbW0sIGV0Yy4pLiBUaGlzIGlzCnVzZWZ1bCBmb3IgRURBQyBkcml2ZXJzIHRoYXQgd2FudCB0 byB0YWtlIHRoZSBhZGRyZXNzIG9mIGFuIGVycm9yCnJlcG9ydGVkIGluIGEgbWFjaGluZSBjaGVj ayBiYW5rIGFuZCBsZXQgdGhlIHVzZXIga25vdyB3aGljaApESU1NIG1heSBuZWVkIHRvIGJlIHJl cGxhY2VkLgoKU3BlY2lmaWNhdGlvbiBmb3IgdGhpcyBpbnRlcmZhY2UgaXMgYXZhaWxhYmxlIGF0 OgoKICAgIGh0dHBzOi8vY2RyZHYyLmludGVsLmNvbS92MS9kbC9nZXRDb250ZW50LzYwMzM1NAoK W0Jhc2VkIG9uIGVhcmxpZXIgY29kZSBieSBRaXV4dSBaaHVvIDxxaXV4dS56aHVvQGludGVsLmNv bT5dCgpUZXN0ZWQtYnk6IFFpdXh1IFpodW8gPHFpdXh1LnpodW9AaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBUb255IEx1Y2sgPHRvbnkubHVja0BpbnRlbC5jb20+Ci0tLQoKdjQ6IE5vdyB3aXRo ICphbGwqIHRoZSBiaXRzIGZyb20gdjIgYW5kIHYzLgoKICAgIEFsc28gZml4ZXMgaW5jbHVkZS9s aW51eC9hZHhsLmggLi4uIGl0IHNob3VsZG4ndCBoYXZlIHRoZSBzdHVicwogICAgYW55IG1vcmUu IEEgZHJpdmVyIHRoYXQgZG9lcyAjaW5jbHVkZSA8bGludXgvYWR4bC5oPiBzaG91bGQgYWxzbwog ICAgaGF2ZSBhICJzZWxlY3QgQUNQSV9BRFhMIi4gSXQgbWFrZXMgbm8gc2Vuc2UgdG8gd2FpdCB1 bnRpbCBkcml2ZXIKICAgIG1vZHVsZSBsb2FkIHRpbWUgdG8gdGVsbCB0aGUgdXNlciB0aGV5IG1p c3NlZCBhIHN0ZXAuCgogZHJpdmVycy9hY3BpL0tjb25maWcgICAgIHwgICAzICsKIGRyaXZlcnMv YWNwaS9NYWtlZmlsZSAgICB8ICAgMyArCiBkcml2ZXJzL2FjcGkvYWNwaV9hZHhsLmMgfCAxOTIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2xpbnV4L2Fk eGwuaCAgICAgfCAgMTMgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDIxMSBpbnNlcnRpb25zKCspCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9hY3BpL2FjcGlfYWR4bC5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgaW5jbHVkZS9saW51eC9hZHhsLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvS2Nv bmZpZyBiL2RyaXZlcnMvYWNwaS9LY29uZmlnCmluZGV4IGRkMWVlYTkwZjY3Zi4uMDk5OTFjYzkx Yjg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvS2NvbmZpZworKysgYi9kcml2ZXJzL2FjcGkv S2NvbmZpZwpAQCAtNDk4LDYgKzQ5OCw5IEBAIGNvbmZpZyBBQ1BJX0VYVExPRwogCSAgZHJpdmVy IGFkZHMgc3VwcG9ydCBmb3IgdGhhdCBmdW5jdGlvbmFsaXR5IHdpdGggY29ycmVzcG9uZGluZwog CSAgdHJhY2Vwb2ludCB3aGljaCBjYXJyaWVzIHRoYXQgaW5mb3JtYXRpb24gdG8gdXNlcnNwYWNl LgogCitjb25maWcgQUNQSV9BRFhMCisJYm9vbAorCiBtZW51Y29uZmlnIFBNSUNfT1BSRUdJT04K IAlib29sICJQTUlDIChQb3dlciBNYW5hZ2VtZW50IEludGVncmF0ZWQgQ2lyY3VpdCkgb3BlcmF0 aW9uIHJlZ2lvbiBzdXBwb3J0IgogCWhlbHAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9NYWtl ZmlsZSBiL2RyaXZlcnMvYWNwaS9NYWtlZmlsZQppbmRleCA2ZDU5YWExMDlhOTEuLmVkYzAzOTMx M2NkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvYWNw aS9NYWtlZmlsZQpAQCAtNjEsNiArNjEsOSBAQCBhY3BpLSQoQ09ORklHX0FDUElfTFBJVCkJKz0g YWNwaV9scGl0Lm8KIGFjcGktJChDT05GSUdfQUNQSV9HRU5FUklDX0dTSSkgKz0gaXJxLm8KIGFj cGktJChDT05GSUdfQUNQSV9XQVRDSERPRykJKz0gYWNwaV93YXRjaGRvZy5vCiAKKyMgQWRkcmVz cyB0cmFuc2xhdGlvbgorYWNwaS0kKENPTkZJR19BQ1BJX0FEWEwpCSs9IGFjcGlfYWR4bC5vCisK ICMgVGhlc2UgYXJlIChwb3RlbnRpYWxseSkgc2VwYXJhdGUgbW9kdWxlcwogCiAjIElQTUkgbWF5 IGJlIHVzZWQgYnkgb3RoZXIgZHJpdmVycywgc28gaXQgaGFzIHRvIGluaXRpYWxpc2UgYmVmb3Jl IHRoZW0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9hY3BpX2FkeGwuYyBiL2RyaXZlcnMvYWNw aS9hY3BpX2FkeGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRj NDdmYzc1MTQ1YwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvYWNwaS9hY3BpX2FkeGwuYwpA QCAtMCwwICsxLDE5MiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8q CisgKiBBZGRyZXNzIHRyYW5zbGF0aW9uIGludGVyZmFjZSB2aWEgQUNQSSBEU00uCisgKiBDb3B5 cmlnaHQgKEMpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBTcGVjaWZpY2F0aW9uIGZv ciB0aGlzIGludGVyZmFjZSBpcyBhdmFpbGFibGUgYXQ6CisgKgorICoJaHR0cHM6Ly9jZHJkdjIu aW50ZWwuY29tL3YxL2RsL2dldENvbnRlbnQvNjAzMzU0CisgKi8KKworI2luY2x1ZGUgPGxpbnV4 L2FjcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9hZHhsLmg+CisKKyNkZWZpbmUgQURYTF9SRVZJU0lP TgkJCTB4MQorI2RlZmluZSBBRFhMX0lEWF9HRVRfQUREUl9QQVJBTVMJMHgxCisjZGVmaW5lIEFE WExfSURYX0ZPUldBUkRfVFJBTlNMQVRFCTB4MgorI2RlZmluZSBBQ1BJX0FEWExfUEFUSAkJCSJc XF9TQi5BRFhMIgorCisvKgorICogVGhlIHNwZWNpZmljYXRpb24gZG9lc24ndCBwcm92aWRlIGEg bGltaXQgb24gaG93IG1hbnkKKyAqIGNvbXBvbmVudHMgYXJlIGluIGEgbWVtb3J5IGFkZHJlc3Mu IEJ1dCBzaW5jZSB3ZSBhbGxvY2F0ZQorICogbWVtb3J5IGJhc2VkIG9uIHRoZSBudW1iZXIgdGhl IEJJT1MgdGVsbHMgdXMsIHdlIHNob3VsZAorICogZGVmZW5kIGFnYWluc3QgaW5zYW5lIHZhbHVl cy4KKyAqLworI2RlZmluZSBBRFhMX01BWF9DT01QT05FTlRTCQk1MDAKKworI3VuZGVmIHByX2Zt dAorI2RlZmluZSBwcl9mbXQoZm10KSAiQURYTDogIiBmbXQKKworc3RhdGljIGFjcGlfaGFuZGxl IGhhbmRsZTsKK3N0YXRpYyB1bmlvbiBhY3BpX29iamVjdCAqcGFyYW1zOworc3RhdGljIGNvbnN0 IGd1aWRfdCBhZHhsX2d1aWQgPQorCUdVSURfSU5JVCgweEFBM0MwNTBBLCAweDdFQTQsIDB4NEMx RiwKKwkJICAweEFGLCAweERBLCAweDEyLCAweDY3LCAweERGLCAweEQzLCAweEQ0LCAweDhEKTsK Kworc3RhdGljIGludCBhZHhsX2NvdW50Oworc3RhdGljIGNoYXIgKiphZHhsX2NvbXBvbmVudF9u YW1lczsKKworc3RhdGljIHVuaW9uIGFjcGlfb2JqZWN0ICphZHhsX2RzbShpbnQgY21kLCB1bmlv biBhY3BpX29iamVjdCBhcmd2W10pCit7CisJdW5pb24gYWNwaV9vYmplY3QgKm9iaiwgKm87CisK KwlvYmogPSBhY3BpX2V2YWx1YXRlX2RzbV90eXBlZChoYW5kbGUsICZhZHhsX2d1aWQsIEFEWExf UkVWSVNJT04sCisJCQkJICAgICAgY21kLCBhcmd2LCBBQ1BJX1RZUEVfUEFDS0FHRSk7CisJaWYg KCFvYmopIHsKKwkJcHJfaW5mbygiRFNNIGNhbGwgZmFpbGVkIGZvciBjbWQ9JWRcbiIsIGNtZCk7 CisJCXJldHVybiBOVUxMOworCX0KKworCWlmIChvYmotPnBhY2thZ2UuY291bnQgIT0gMikgewor CQlwcl9pbmZvKCJCYWQgcGtnIGNvdW50ICVkXG4iLCBvYmotPnBhY2thZ2UuY291bnQpOworCQln b3RvIGVycjsKKwl9CisKKwlvID0gb2JqLT5wYWNrYWdlLmVsZW1lbnRzOworCWlmIChvLT50eXBl ICE9IEFDUElfVFlQRV9JTlRFR0VSKSB7CisJCXByX2luZm8oIkJhZCAxc3QgZWxlbWVudCB0eXBl ICVkXG4iLCBvLT50eXBlKTsKKwkJZ290byBlcnI7CisJfQorCWlmIChvLT5pbnRlZ2VyLnZhbHVl KSB7CisJCXByX2luZm8oIkJhZCByZXQgdmFsICVsbHVcbiIsIG8tPmludGVnZXIudmFsdWUpOwor CQlnb3RvIGVycjsKKwl9CisKKwlvID0gb2JqLT5wYWNrYWdlLmVsZW1lbnRzICsgMTsKKwlpZiAo by0+dHlwZSAhPSBBQ1BJX1RZUEVfUEFDS0FHRSkgeworCQlwcl9pbmZvKCJCYWQgMm5kIGVsZW1l bnQgdHlwZSAlZFxuIiwgby0+dHlwZSk7CisJCWdvdG8gZXJyOworCX0KKwlyZXR1cm4gb2JqOwor CitlcnI6CisJQUNQSV9GUkVFKG9iaik7CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qKgorICogYWR4 bF9nZXRfY29tcG9uZW50X25hbWVzIC0gZ2V0IGxpc3Qgb2YgbWVtb3J5IGNvbXBvbmVudCBuYW1l cworICogUmV0dXJucyBOVUxMIHRlcm1pbmF0ZWQgbGlzdCBvZiBzdHJpbmcgbmFtZXMKKyAqCisg KiBHaXZlIHRoZSBjYWxsZXIgYSBwb2ludGVyIHRvIHRoZSBsaXN0IG9mIG1lbW9yeSBjb21wb25l bnQgbmFtZXMKKyAqIGUuZy4geyAiU3lzdGVtQWRkcmVzcyIsICJQcm9jZXNzb3JTb2NrZXRJZCIs ICJDaGFubmVsSWQiLCAuLi4gTlVMTCB9CisgKiBDYWxsZXIgc2hvdWxkIGNvdW50IGhvdyBtYW55 IHN0cmluZ3MgaW4gb3JkZXIgdG8gYWxsb2NhdGUgYSBidWZmZXIKKyAqIGZvciB0aGUgcmV0dXJu IGZyb20gYWR4bF9kZWNvZGUoKS4KKyAqLworY29uc3QgY2hhciAqIGNvbnN0ICphZHhsX2dldF9j b21wb25lbnRfbmFtZXModm9pZCkKK3sKKwlyZXR1cm4gKGNvbnN0IGNoYXIgKiBjb25zdCAqKWFk eGxfY29tcG9uZW50X25hbWVzOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYWR4bF9nZXRfY29tcG9u ZW50X25hbWVzKTsKKworLyoqCisgKiBhZHhsX2RlY29kZSAtIGFzayBCSU9TIHRvIGRlY29kZSBh IHN5c3RlbSBhZGRyZXNzIHRvIG1lbW9yeSBhZGRyZXNzCisgKiBAYWRkcjogdGhlIGFkZHJlc3Mg dG8gZGVjb2RlCisgKiBAY29tcG9uZW50X3ZhbHVlczogcG9pbnRlciB0byBhcnJheSBvZiB2YWx1 ZXMgZm9yIGVhY2ggY29tcG9uZW50CisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgbmVnYXRpdmUg ZXJyb3IgY29kZSBvdGhlcndpc2UKKyAqCisgKiBUaGUgaW5kZXggb2YgZWFjaCB2YWx1ZSByZXR1 cm5lZCBpbiB0aGUgYXJyYXkgbWF0Y2hlcyB0aGUgaW5kZXggb2YKKyAqIGVhY2ggY29tcG9uZW50 IG5hbWUgcmV0dXJuZWQgYnkgYWR4bF9nZXRfY29tcG9uZW50X25hbWVzKCkuCisgKiBDb21wb25l bnRzIHRoYXQgYXJlIG5vdCBkZWZpbmVkIGZvciB0aGlzIGFkZHJlc3MgdHJhbnNsYXRpb24gKGUu Zy4KKyAqIG1pcnJvciBjaGFubmVsIG51bWJlciBmb3IgYSBub24tbWlycm9yZWQgYWRkcmVzcykg YXJlIHNldCB0byB+MHVsbC4KKyAqLworaW50IGFkeGxfZGVjb2RlKHU2NCBhZGRyLCB1NjQgY29t cG9uZW50X3ZhbHVlc1tdKQoreworCXVuaW9uIGFjcGlfb2JqZWN0IGFyZ3Y0WzJdLCAqcmVzdWx0 cywgKnI7CisJaW50IGksIGNudDsKKworCWlmICghYWR4bF9jb21wb25lbnRfbmFtZXMpCisJCXJl dHVybiAtRU9QTk9UU1VQUDsKKworCWFyZ3Y0WzBdLnR5cGUgPSBBQ1BJX1RZUEVfUEFDS0FHRTsK Kwlhcmd2NFswXS5wYWNrYWdlLmNvdW50ID0gMTsKKwlhcmd2NFswXS5wYWNrYWdlLmVsZW1lbnRz ID0gJmFyZ3Y0WzFdOworCWFyZ3Y0WzFdLmludGVnZXIudHlwZSA9IEFDUElfVFlQRV9JTlRFR0VS OworCWFyZ3Y0WzFdLmludGVnZXIudmFsdWUgPSBhZGRyOworCisJcmVzdWx0cyA9IGFkeGxfZHNt KEFEWExfSURYX0ZPUldBUkRfVFJBTlNMQVRFLCBhcmd2NCk7CisJaWYgKCFyZXN1bHRzKQorCQly ZXR1cm4gLUVJTlZBTDsKKworCXIgPSByZXN1bHRzLT5wYWNrYWdlLmVsZW1lbnRzICsgMTsKKwlj bnQgPSByLT5wYWNrYWdlLmNvdW50OworCWlmIChjbnQgIT0gYWR4bF9jb3VudCkgeworCQlBQ1BJ X0ZSRUUocmVzdWx0cyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyID0gci0+cGFja2FnZS5l bGVtZW50czsKKworCWZvciAoaSA9IDA7IGkgPCBjbnQ7IGkrKykKKwkJY29tcG9uZW50X3ZhbHVl c1tpXSA9IHJbaV0uaW50ZWdlci52YWx1ZTsKKworCUFDUElfRlJFRShyZXN1bHRzKTsKKworCXJl dHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYWR4bF9kZWNvZGUpOworCitzdGF0aWMgaW50 IF9faW5pdCBhZHhsX2luaXQodm9pZCkKK3sKKwljaGFyICpwYXRoID0gQUNQSV9BRFhMX1BBVEg7 CisJdW5pb24gYWNwaV9vYmplY3QgKnA7CisJYWNwaV9zdGF0dXMgc3RhdHVzOworCWludCBpOwor CisJc3RhdHVzID0gYWNwaV9nZXRfaGFuZGxlKE5VTEwsIHBhdGgsICZoYW5kbGUpOworCWlmIChB Q1BJX0ZBSUxVUkUoc3RhdHVzKSkgeworCQlwcl9pbmZvKCJObyBBQ1BJIGhhbmRsZSBmb3IgcGF0 aCAlc1xuIiwgcGF0aCk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWlmICghYWNwaV9oYXNf bWV0aG9kKGhhbmRsZSwgIl9EU00iKSkgeworCQlwcl9pbmZvKCJObyBEU00gbWV0aG9kXG4iKTsK KwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJaWYgKCFhY3BpX2NoZWNrX2RzbShoYW5kbGUsICZh ZHhsX2d1aWQsIEFEWExfUkVWSVNJT04sCisJCQkgICAgQURYTF9JRFhfR0VUX0FERFJfUEFSQU1T IHwKKwkJCSAgICBBRFhMX0lEWF9GT1JXQVJEX1RSQU5TTEFURSkpIHsKKwkJcHJfaW5mbygiRFNN IG1ldGhvZCBkb2VzIG5vdCBzdXBwb3J0IGZvcndhcmQgdHJhbnNsYXRlXG4iKTsKKwkJcmV0dXJu IC1FTk9ERVY7CisJfQorCisJcGFyYW1zID0gYWR4bF9kc20oQURYTF9JRFhfR0VUX0FERFJfUEFS QU1TLCBOVUxMKTsKKwlpZiAoIXBhcmFtcykgeworCQlwcl9pbmZvKCJGYWlsZWQgdG8gZ2V0IGNv bXBvbmVudCBuYW1lc1xuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXAgPSBwYXJhbXMt PnBhY2thZ2UuZWxlbWVudHMgKyAxOworCWFkeGxfY291bnQgPSBwLT5wYWNrYWdlLmNvdW50Owor CWlmIChhZHhsX2NvdW50ID4gQURYTF9NQVhfQ09NUE9ORU5UUykgeworCQlwcl9pbmZvKCJJbnNh bmUgbnVtYmVyIG9mIGFkZHJlc3MgY29tcG9uZW50IG5hbWVzICVkXG4iLCBhZHhsX2NvdW50KTsK KwkJQUNQSV9GUkVFKHBhcmFtcyk7CisJCXJldHVybiAtRU5PREVWOworCX0KKwlwID0gcC0+cGFj a2FnZS5lbGVtZW50czsKKworCS8qCisJICogQWxsb2NhdGUgb25lIGV4dHJhIGZvciBOVUxMIHRl cm1pbmF0aW9uLgorCSAqLworCWFkeGxfY29tcG9uZW50X25hbWVzID0ga2NhbGxvYyhhZHhsX2Nv dW50ICsgMSwgc2l6ZW9mKGNoYXIgKiksIEdGUF9LRVJORUwpOworCWlmICghYWR4bF9jb21wb25l bnRfbmFtZXMpIHsKKwkJQUNQSV9GUkVFKHBhcmFtcyk7CisJCXJldHVybiAtRU5PTUVNOworCX0K KworCWZvciAoaSA9IDA7IGkgPCBhZHhsX2NvdW50OyBpKyspCisJCWFkeGxfY29tcG9uZW50X25h bWVzW2ldID0gcFtpXS5zdHJpbmcucG9pbnRlcjsKKworCXJldHVybiAwOworfQorc3Vic3lzX2lu aXRjYWxsKGFkeGxfaW5pdCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FkeGwuaCBiL2lu Y2x1ZGUvbGludXgvYWR4bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMmE2MjlhY2I0YzNmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9hZHhsLmgK QEAgLTAsMCArMSwxMyBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8K Ky8qCisgKiBBZGRyZXNzIHRyYW5zbGF0aW9uIGludGVyZmFjZSB2aWEgQUNQSSBEU00uCisgKiBD b3B5cmlnaHQgKEMpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqLworCisjaWZuZGVmIF9MSU5V WF9BRFhMX0gKKyNkZWZpbmUgX0xJTlVYX0FEWExfSAorCitjb25zdCBjaGFyICogY29uc3QgKmFk eGxfZ2V0X2NvbXBvbmVudF9uYW1lcyh2b2lkKTsKK2ludCBhZHhsX2RlY29kZSh1NjQgYWRkciwg dTY0IGNvbXBvbmVudF92YWx1ZXNbXSk7CisKKyNlbmRpZiAvKiBfTElOVVhfQURYTF9IICovCg==