From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v4 09/28] x86/vvtd: Set Interrupt Remapping Table Pointer through GCMD Date: Fri, 17 Nov 2017 14:22:16 +0800 Message-ID: <1510899755-40237-10-git-send-email-chao.gao@intel.com> References: <1510899755-40237-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1510899755-40237-1-git-send-email-chao.gao@intel.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: Lan Tianyu , Kevin Tian , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Ian Jackson , Tim Deegan , Jan Beulich , Andrew Cooper , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org U29mdHdhcmUgc2V0cyBTSVJUUCBmaWVsZCBvZiBHQ01EIHRvIHNldC91cGRhdGUgdGhlIGludGVy cnVwdCByZW1hcHBpbmcKdGFibGUgcG9pbnRlciB1c2VkIGJ5IGhhcmR3YXJlLiBUaGUgaW50ZXJy dXB0IHJlbWFwcGluZyB0YWJsZSBwb2ludGVyIGlzCnNwZWNpZmllZCB0aHJvdWdoIHRoZSBJbnRl cnJ1cHQgUmVtYXBwaW5nIFRhYmxlIEFkZHJlc3MgKElSVEFfUkVHKQpyZWdpc3Rlci4KClRoaXMg cGF0Y2ggZW11bGF0ZXMgdGhpcyBvcGVyYXRpb24gYW5kIGFkZHMgc29tZSBuZXcgZmllbGRzIGlu IFZWVEQgdG8gdHJhY2sKaW5mbyAoZS5nLiB0aGUgdGFibGUncyBnZm4gYW5kIG1heCBzdXBwb3J0 ZWQgZW50cmllcykgb2YgaW50ZXJydXB0IHJlbWFwcGluZwp0YWJsZS4KClNpZ25lZC1vZmYtYnk6 IENoYW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IExhbiBUaWFueXUg PHRpYW55dS5sYW5AaW50ZWwuY29tPgoKLS0tCnY0OgogLSBkZWNsYXJlIGVpbV9lbmFibGVkIGFz IGJvb2wgYW5kIGlydCBhcyBnZm5fdAogLSByZW5hbWUgdnZ0ZF9oYW5kbGVfZ2NtZF9zaXJ0cCgp IHRvIHdyaXRlX2djbWRfc2lydHAoKQoKdjM6CiAtIGlnbm9yZSB1bmFsaWduZWQgci93IG9mIHZ0 LWQgaGFyZHdhcmUgcmVnaXN0ZXJzIGFuZCByZXR1cm4gWDg2RU1VTF9PSwotLS0KIHhlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oIHwgMTYgKysrKysrLQogeGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvdnRkL3Z2dGQuYyAgfCA4NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKaW5kZXggZjJlZjNkZC4uODU3OTg0MyAx MDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKQEAgLTQ4LDcgKzQ4LDggQEAKICNkZWZp bmUgRE1BUl9JUVRfUkVHICAgICAgICAgICAgMHg4OCAvKiBpbnZhbGlkYXRpb24gcXVldWUgdGFp bCAqLwogI2RlZmluZSBETUFSX0lRQV9SRUcgICAgICAgICAgICAweDkwIC8qIGludmFsaWRhdGlv biBxdWV1ZSBhZGRyICovCiAjZGVmaW5lIERNQVJfSUVDVExfUkVHICAgICAgICAgIDB4YTAgLyog aW52YWxpZGF0aW9uIGV2ZW50IGNvbnRyb2wgcmVnaXN0ZXIgKi8KLSNkZWZpbmUgRE1BUl9JUlRB X1JFRyAgICAgICAgICAgMHhiOCAvKiBpbnRyIHJlbWFwICovCisjZGVmaW5lIERNQVJfSVJUQV9S RUcgICAgICAgICAgIDB4YjggLyogYmFzZSBhZGRyZXNzIG9mIGludHIgcmVtYXAgdGFibGUgKi8K KyNkZWZpbmUgRE1BUl9JUlRVQV9SRUcgICAgICAgICAgMHhiYyAvKiB1cHBlciBhZGRyZXNzIG9m IGludHIgcmVtYXAgdGFibGUgKi8KIAogI2RlZmluZSBPRkZTRVRfU1RSSURFICAgICAgICAoOSkK ICNkZWZpbmUgZG1hcl9yZWFkbChkbWFyLCByZWcpIHJlYWRsKChkbWFyKSArIChyZWcpKQpAQCAt MTUwLDYgKzE1MSw5IEBACiAjZGVmaW5lIERNQV9HQ01EX1NJUlRQICAoKCh1NjQpMSkgPDwgMjQp CiAjZGVmaW5lIERNQV9HQ01EX0NGSSAgICAoKCh1NjQpMSkgPDwgMjMpCiAKKy8qIG1hc2sgb2Yg b25lLXNob3QgYml0cyAqLworI2RlZmluZSBETUFfR0NNRF9PTkVfU0hPVF9NQVNLIDB4OTZmZmZm ZmYKKwogLyogR1NUU19SRUcgKi8KICNkZWZpbmUgRE1BX0dTVFNfVEVTICAgICgoKHU2NCkxKSA8 PCAzMSkKICNkZWZpbmUgRE1BX0dTVFNfUlRQUyAgICgoKHU2NCkxKSA8PCAzMCkKQEAgLTE1Nywx MCArMTYxLDE4IEBACiAjZGVmaW5lIERNQV9HU1RTX0FGTFMgICAoKCh1NjQpMSkgPDwgMjgpCiAj ZGVmaW5lIERNQV9HU1RTX1dCRlMgICAoKCh1NjQpMSkgPDwgMjcpCiAjZGVmaW5lIERNQV9HU1RT X1FJRVMgICAoKCh1NjQpMSkgPDwyNikKKyNkZWZpbmUgRE1BX0dTVFNfU0lSVFBTX1NISUZUICAg MjQKKyNkZWZpbmUgRE1BX0dTVFNfU0lSVFBTICgoKHU2NCkxKSA8PCBETUFfR1NUU19TSVJUUFNf U0hJRlQpCiAjZGVmaW5lIERNQV9HU1RTX0lSRVMgICAoKCh1NjQpMSkgPDwyNSkKLSNkZWZpbmUg RE1BX0dTVFNfU0lSVFBTICgoKHU2NCkxKSA8PCAyNCkKICNkZWZpbmUgRE1BX0dTVFNfQ0ZJUyAg ICgoKHU2NCkxKSA8PDIzKQogCisvKiBJUlRBX1JFRyAqLworLyogVGhlIGJhc2Ugb2YgNEtCIGFs aWduZWQgaW50ZXJydXB0IHJlbWFwcGluZyB0YWJsZSAqLworI2RlZmluZSBETUFfSVJUQV9BRERS KHZhbCkgICAgICAoKHZhbCkgJiB+MHhmZmZVTEwpCisvKiBUaGUgc2l6ZSBvZiByZW1hcHBpbmcg dGFibGUgaXMgMl4oeCsxKSwgd2hlcmUgeCBpcyB0aGUgc2l6ZSBmaWVsZCBpbiBJUlRBICovCisj ZGVmaW5lIERNQV9JUlRBX1ModmFsKSAgICAgICAgICh2YWwgJiAweGYpCisjZGVmaW5lIERNQV9J UlRBX1NJWkUodmFsKSAgICAgICgxVUwgPDwgKERNQV9JUlRBX1ModmFsKSArIDEpKQorCiAvKiBQ TUVOX1JFRyAqLwogI2RlZmluZSBETUFfUE1FTl9FUE0gICAgKCgodTMyKTEpIDw8IDMxKQogI2Rl ZmluZSBETUFfUE1FTl9QUlMgICAgKCgodTMyKTEpIDw8IDApCmRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L3Z2dGQuYwppbmRleCBkNzhkODc4Li5mMDQ3NmZlIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvdnZ0ZC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92 dnRkLmMKQEAgLTM2LDYgKzM2LDEyIEBACiAjZGVmaW5lIFZWVERfTUFYX09GRlNFVCBWVlREX0ZS Q0RfRU5ECiAKIHN0cnVjdCBodm1faHdfdnZ0ZCB7CisgICAgYm9vbCBlaW1fZW5hYmxlZDsKKwor ICAgIC8qIEludGVycnVwdCByZW1hcHBpbmcgdGFibGUgYmFzZSBnZm4gYW5kIHRoZSBtYXggb2Yg ZW50cmllcyAqLworICAgIHVpbnQxNl90IGlydF9tYXhfZW50cnk7CisgICAgZ2ZuX3QgaXJ0Owor CiAgICAgdWludDMyX3QgcmVnc1tWVlREX01BWF9PRkZTRVQvc2l6ZW9mKHVpbnQzMl90KV07CiB9 OwogCkBAIC03Myw2ICs3OSwxNiBAQCBib29sZWFuX3J1bnRpbWVfcGFyYW0oInZpb21tdV92ZXJi b3NlIiwgdmlvbW11X3ZlcmJvc2UpOwogCiAjZGVmaW5lIFZWVERfUkVHX1BPUyh2dnRkLCBvZmZz ZXQpICYodnZ0ZC0+aHcucmVnc1tvZmZzZXQvc2l6ZW9mKHVpbnQzMl90KV0pCiAKK3N0YXRpYyBp bmxpbmUgdm9pZCB2dnRkX3NldF9iaXQoc3RydWN0IHZ2dGQgKnZ2dGQsIHVpbnQzMl90IHJlZywg aW50IG5yKQoreworICAgIF9fc2V0X2JpdChuciwgVlZURF9SRUdfUE9TKHZ2dGQsIHJlZykpOwor fQorCitzdGF0aWMgaW5saW5lIHZvaWQgdnZ0ZF9jbGVhcl9iaXQoc3RydWN0IHZ2dGQgKnZ2dGQs IHVpbnQzMl90IHJlZywgaW50IG5yKQoreworICAgIF9fY2xlYXJfYml0KG5yLCBWVlREX1JFR19Q T1ModnZ0ZCwgcmVnKSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCB2dnRkX3NldF9yZWcoc3Ry dWN0IHZ2dGQgKnZ2dGQsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpCiB7CiAgICAgKlZW VERfUkVHX1BPUyh2dnRkLCByZWcpID0gdmFsdWU7CkBAIC0xMDIsNiArMTE4LDUyIEBAIHN0YXRp YyB2b2lkICpkb21haW5fdnZ0ZChjb25zdCBzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICByZXR1 cm4gTlVMTDsKIH0KIAorc3RhdGljIHZvaWQgd3JpdGVfZ2NtZF9zaXJ0cChzdHJ1Y3QgdnZ0ZCAq dnZ0ZCwgdWludDMyX3QgdmFsKQoreworICAgIHVpbnQ2NF90IGlydGEgPSB2dnRkX2dldF9yZWdf cXVhZCh2dnRkLCBETUFSX0lSVEFfUkVHKTsKKworICAgIGlmICggISh2YWwgJiBETUFfR0NNRF9T SVJUUCkgKQorICAgICAgICByZXR1cm47CisKKyAgICAvKgorICAgICAqIEhhcmR3YXJlIGNsZWFy cyB0aGlzIGJpdCB3aGVuIHNvZnR3YXJlIHNldHMgdGhlIFNJUlRQUyBmaWVsZCBpbgorICAgICAq IHRoZSBHbG9iYWwgQ29tbWFuZCByZWdpc3RlciBhbmQgc2V0cyBpdCB3aGVuIGhhcmR3YXJlIGNv bXBsZXRlcworICAgICAqIHRoZSAnU2V0IEludGVycnVwdCBSZW1hcCBUYWJsZSBQb2ludGVyJyBv cGVyYXRpb24uCisgICAgICovCisgICAgdnZ0ZF9jbGVhcl9iaXQodnZ0ZCwgRE1BUl9HU1RTX1JF RywgRE1BX0dTVFNfU0lSVFBTX1NISUZUKTsKKworICAgIGlmICggZ2ZuX3godnZ0ZC0+aHcuaXJ0 KSAhPSBQRk5fRE9XTihETUFfSVJUQV9BRERSKGlydGEpKSB8fAorICAgICAgICAgdnZ0ZC0+aHcu aXJ0X21heF9lbnRyeSAhPSBETUFfSVJUQV9TSVpFKGlydGEpICkKKyAgICB7CisgICAgICAgIHZ2 dGQtPmh3LmlydCA9IF9nZm4oUEZOX0RPV04oRE1BX0lSVEFfQUREUihpcnRhKSkpOworICAgICAg ICB2dnRkLT5ody5pcnRfbWF4X2VudHJ5ID0gRE1BX0lSVEFfU0laRShpcnRhKTsKKyAgICAgICAg dnZ0ZC0+aHcuZWltX2VuYWJsZWQgPSAhIShpcnRhICYgSVJUQV9FSU1FKTsKKyAgICAgICAgdnZ0 ZF9pbmZvKCJVcGRhdGUgSVIgaW5mbyAoYWRkcj0lbHggZWltPSVkIHNpemU9JWQpXG4iLAorICAg ICAgICAgICAgICAgICAgZ2ZuX3godnZ0ZC0+aHcuaXJ0KSwgdnZ0ZC0+aHcuZWltX2VuYWJsZWQs CisgICAgICAgICAgICAgICAgICB2dnRkLT5ody5pcnRfbWF4X2VudHJ5KTsKKyAgICB9CisgICAg dnZ0ZF9zZXRfYml0KHZ2dGQsIERNQVJfR1NUU19SRUcsIERNQV9HU1RTX1NJUlRQU19TSElGVCk7 Cit9CisKK3N0YXRpYyB2b2lkIHZ2dGRfd3JpdGVfZ2NtZChzdHJ1Y3QgdnZ0ZCAqdnZ0ZCwgdWlu dDMyX3QgdmFsKQoreworICAgIHVpbnQzMl90IG9yaWcgPSB2dnRkX2dldF9yZWcodnZ0ZCwgRE1B Ul9HU1RTX1JFRyk7CisgICAgdWludDMyX3QgY2hhbmdlZDsKKworICAgIG9yaWcgPSBvcmlnICYg RE1BX0dDTURfT05FX1NIT1RfTUFTSzsgICAvKiByZXNldCB0aGUgb25lLXNob3QgYml0cyAqLwor ICAgIGNoYW5nZWQgPSBvcmlnIF4gdmFsOworCisgICAgaWYgKCAhY2hhbmdlZCApCisgICAgICAg IHJldHVybjsKKworICAgIGlmICggY2hhbmdlZCAmIChjaGFuZ2VkIC0gMSkgKQorICAgICAgICB2 dnRkX2luZm8oIldyaXRlICV4IHRvIEdDTUQgKGN1cnJlbnQgJXgpLCB1cGRhdGluZyBtdWx0aXBs ZSBmaWVsZHMiLAorICAgICAgICAgICAgICAgICAgdmFsLCBvcmlnKTsKKworICAgIGlmICggY2hh bmdlZCAmIERNQV9HQ01EX1NJUlRQICkKKyAgICAgICAgd3JpdGVfZ2NtZF9zaXJ0cCh2dnRkLCB2 YWwpOworfQorCiBzdGF0aWMgaW50IHZ2dGRfaW5fcmFuZ2Uoc3RydWN0IHZjcHUgKnYsIHVuc2ln bmVkIGxvbmcgYWRkcikKIHsKICAgICBzdHJ1Y3QgdnZ0ZCAqdnZ0ZCA9IGRvbWFpbl92dnRkKHYt PmRvbWFpbik7CkBAIC0xMzksNiArMjAxLDMwIEBAIHN0YXRpYyBpbnQgdnZ0ZF93cml0ZShzdHJ1 Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyLAogCiAgICAgdnZ0ZF9pbmZvKCJXcml0ZSBv ZmZzZXQgJXggbGVuICVkIHZhbCAlbHhcbiIsIG9mZnNldCwgbGVuLCB2YWwpOwogCisgICAgaWYg KCAobGVuICE9IDQgJiYgbGVuICE9IDgpIHx8IChvZmZzZXQgJiAobGVuIC0gMSkpICkKKyAgICAg ICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKKworICAgIHN3aXRjaCAoIG9mZnNldCApCisgICAgewor ICAgIGNhc2UgRE1BUl9HQ01EX1JFRzoKKyAgICAgICAgdnZ0ZF93cml0ZV9nY21kKHZ2dGQsIHZh bCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBETUFSX0lSVEFfUkVHOgorICAgICAgICB2 dnRkX3NldF9yZWcodnZ0ZCwgb2Zmc2V0LCB2YWwpOworICAgICAgICBpZiAoIGxlbiA9PSA0ICkK KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB2YWwgPSB2YWwgPj4gMzI7CisgICAgICAgIG9m ZnNldCArPSA0OworICAgICAgICAvKiBGYWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIERNQVJfSVJU VUFfUkVHOgorICAgICAgICB2dnRkX3NldF9yZWcodnZ0ZCwgb2Zmc2V0LCB2YWwpOworICAgICAg ICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIHJl dHVybiBYODZFTVVMX09LQVk7CiB9CiAKLS0gCjEuOC4zLjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK