From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: star.zeng@intel.com) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by groups.io with SMTP; Sun, 19 May 2019 20:32:34 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 May 2019 20:32:33 -0700 X-ExtLoop1: 1 Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga004.jf.intel.com with ESMTP; 19 May 2019 20:32:33 -0700 Received: from fmsmsx161.amr.corp.intel.com (10.18.125.9) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 19 May 2019 20:32:33 -0700 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by FMSMSX161.amr.corp.intel.com (10.18.125.9) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 19 May 2019 20:32:32 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.249]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.136]) with mapi id 14.03.0415.000; Mon, 20 May 2019 11:32:31 +0800 From: "Zeng, Star" To: "Jerry Zhou(BJ-RD)" , "edk2-devel@lists.01.org" , "devel@edk2.groups.io" CC: "Yao, Jiewen" , "Ni, Ray" , "Zeng, Star" Subject: Re: [edk2] [PATCH] IntelSiliconPkg VTdDxe: a question about the source code Thread-Topic: [edk2] [PATCH] IntelSiliconPkg VTdDxe: a question about the source code Thread-Index: AdUJNci9WEC63Y3xT7KjRAFsJUkP5QARFuIgAAC+ShABT1l1wA== Date: Mon, 20 May 2019 03:32:30 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB048310402E56C9@shsmsx102.ccr.corp.intel.com> References: <0C09AFA07DD0434D9E2A0C6AEB048310402DECF5@shsmsx102.ccr.corp.intel.com> <9b07851c347d4810a691ebaa64d1fa5e@zhaoxin.com> In-Reply-To: <9b07851c347d4810a691ebaa64d1fa5e@zhaoxin.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: star.zeng@intel.com Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_0C09AFA07DD0434D9E2A0C6AEB048310402E56C9shsmsx102ccrcor_" --_000_0C09AFA07DD0434D9E2A0C6AEB048310402E56C9shsmsx102ccrcor_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 QWN0dWFsbHksIEkgYWdyZWUgd2l0aCB5b3UuDQpQZXJzb25hbGx5LCBJIHRoaW5rIG1vcmUgcmln b3JvdXMgZmxvdyBjb3VsZCBiZSBsaWtlIGJlbG93Lg0KDQoxLiAgICAgICBDbGVhciBCX0dNQ0Rf UkVHX1RFLCB3YWl0IEJfR1NUU19SRUdfVEUgdG8gYmUgY2xlYXJlZC4NCg0KMi4gICAgICAgU2V0 IEJfR01DRF9SRUdfU1JUUCwgd2FpdCBCX0dTVFNfUkVHX1JUUFMgdG8gYmUgc2V0Lg0KDQozLiAg ICAgICBaZXJvIFJfUlRBRERSX1JFRy4NCg0KTm90IHN1cmUgb3JpZ2luYWwgY29kZSBkZXZlbG9w ZXIgSmlld2Vuoa9zIHRob3VnaHQgYWJvdXQgdGhpcy4NCg0KDQpZb3UgbWF5IHN1Ym1pdCBCdWd6 aWxsYSBhdCBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcgaWYgeW91IHdhaXQuDQoNCg0K VGhhbmtzLA0KU3Rhcg0KDQpGcm9tOiBKZXJyeSBaaG91KEJKLVJEKSBbbWFpbHRvOkplcnJ5Wmhv dUB6aGFveGluLmNvbV0NClNlbnQ6IE1vbmRheSwgTWF5IDEzLCAyMDE5IDc6MjggUE0NClRvOiBa ZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7 IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpDYzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwu Y29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NClN1YmplY3Q6ILTwuLQ6IFtlZGsyXSBb UEFUQ0hdIEludGVsU2lsaWNvblBrZyBWVGREeGU6IGEgcXVlc3Rpb24gYWJvdXQgdGhlIHNvdXJj ZSBjb2RlDQoNCkdvdCBpdCEgVGhhbmtzIGZvciB5b3VyIHJlcGx5Lg0KQnV0IHlvdSBzaG91bGQg c3RpbGwgcG9sbCB0aGUgQl9HU1RTX1JFR19URSBiaXQsIG5vdCB0aGUgQl9HU1RTX1JFR19SVFBT IGJpdCwgaW4gdGhlIGp1ZGdlbWVudCBjb2RlIG9mIHdoaWxlKCkgbG9vcC4NCkFmdGVyICYgb3Bl cmF0aW9uIGJldHdlZW4gUmVnMzIgYW5kIEJfR1NUU19SRUdfUlRQUywgdGhlIHN0YXR1cyBvZiBC X0dTVFNfUkVHX1RFIHdpbGwgYmUgbG9zdC4NCg0KQSBtb3JlIHRlZGlvdXMgYnV0IG1vcmUgcmVs aWFibGUgb3BlcmF0aW9uIHNlcXVlbmNlIGlzIHJlY29tbWVuZGVkIGluIFZ0LWQgc3BlY2lmaWNh dGlvbiAyLjQgYmVsb3c6DQoNCnRvIHVwZGF0ZSBhIGJpdCBmaWVsZCBpbiB0aGlzIHJlZ2lzdGVy IGF0IG9mZnNldCBYIHdpdGggdmFsdWUgb2YgWSwgc29mdHdhcmUNCm11c3QgZm9sbG93IGJlbG93 IHN0ZXBzOg0KMS4gVG1wID0gUmVhZCBHU1RTX1JFRw0KMi4gU3RhdHVzID0gKFRtcCAmIDk2RkZG RkZGaCkgLy8gUmVzZXQgdGhlIG9uZS1zaG90IGJpdHMNCjMuIENvbW1hbmQgPSAoU3RhdHVzIHwg KFkgPDwgWCkpDQo0LiBXcml0ZSBDb21tYW5kIHRvIEdDTURfUkVHDQo1LiBXYWl0IHVudGlsIEdT VFNfUkVHW1hdIGluZGljYXRlcyBjb21tYW5kIGlzIHNlcnZpY2VkLg0Kt6K8/sjLOiBaZW5nLCBT dGFyIFttYWlsdG86c3Rhci56ZW5nQGludGVsLmNvbV0NCreiy83KsbzkOiAyMDE5xOo11MIxM8jV IDE4OjU0DQrK1bz+yMs6IEplcnJ5IFpob3UoQkotUkQpOyBlZGsyLWRldmVsQGxpc3RzLjAxLm9y ZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQqzrcvNOiBZYW8sIEppZXdlbjsgTmks IFJheTsgWmVuZywgU3Rhcg0K1vfM4jogUkU6IFtlZGsyXSBbUEFUQ0hdIEludGVsU2lsaWNvblBr ZyBWVGREeGU6IGEgcXVlc3Rpb24gYWJvdXQgdGhlIHNvdXJjZSBjb2RlDQoNCkdvb2QgcXVlc3Rp b24sIG15IHVuZGVyc3RhbmRpbmcgaXMgc2V0dGluZyBCX0dNQ0RfUkVHX1NSVFAoQklUMzApIE9O TFkgYWxzbyBtZWFucyBjbGVhcmluZyBCX0dNQ0RfUkVHX1RFIChCSVQzMSkuDQoNClRoYW5rcywN ClN0YXINCkZyb206IEplcnJ5IFpob3UoQkotUkQpIFttYWlsdG86SmVycnlaaG91QHpoYW94aW4u Y29tXQ0KU2VudDogTW9uZGF5LCBNYXkgMTMsIDIwMTkgMTA6NTkgQU0NClRvOiBaZW5nLCBTdGFy IDxzdGFyLnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwuY29tPj47IGVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4NCkNjOiBZ YW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwu Y29tPj47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb208bWFpbHRvOnJheS5uaUBpbnRlbC5jb20+ Pg0KU3ViamVjdDogtPC4tDogW2VkazJdIFtQQVRDSF0gSW50ZWxTaWxpY29uUGtnIFZUZER4ZTog YSBxdWVzdGlvbiBhYm91dCB0aGUgc291cmNlIGNvZGUNCg0KDQpIaSBTdGFyLA0KDQogICAgICAg ICBJJ2FtIHNvIGludGVyZXN0ZWQgaW4gRE1BIHByb3RlY3Rpb24gaW4gVUVGSS4gSXQncyBhIHJl YWxseSBnb29kIGRlc2lnbiENCg0KICAgICAgICAgQnV0IEkgaGF2ZSBhIHF1ZXN0aW9uIGFib3V0 IHRoZSBpbXBsZW1lbnRpb24gb2YgRGlzYWJsZURtYXIoKSBpbiBJbnRlbFNpbGljb25Qa2dcZmVh dHVyZVx2dGRcaW50ZWx2dGRkeGVcVnRkUmVnLmMNCg0KICAgICAgICAgSXMgaXQgYSB0eXBpbmcg ZXJyb3IgaW4gdGhlIGNvZGUgc2VnbWVudCBiZWxvdz8NCg0KDQoNCiAgICAvLw0KDQogICAgLy8g RGlzYWJsZSBWVGQNCg0KICAgIC8vDQoNCiAgICBNbWlvV3JpdGUzMiAobVZ0ZFVuaXRJbmZvcm1h dGlvbltJbmRleF0uVnRkVW5pdEJhc2VBZGRyZXNzICsgUl9HQ01EX1JFRywgQl9HTUNEX1JFR19T UlRQKTsNCg0KICAgIGRvIHsNCg0KICAgICAgUmVnMzIgPSBNbWlvUmVhZDMyIChtVnRkVW5pdElu Zm9ybWF0aW9uW0luZGV4XS5WdGRVbml0QmFzZUFkZHJlc3MgKyBSX0dTVFNfUkVHKTsNCg0KfSB3 aGlsZSgoUmVnMzIgJiBCX0dTVFNfUkVHX1JUUFMpID09IDApOw0KDQoNCg0KVGhlIHNvZnR3YXJl IHNob3VsZCBwcm9ncmFtIHRoZSBCX0dNQ0RfUkVHX1RFIGZpZWxkIGluIGdsb2JhbCBjb21tYW5k IHJlZ2lzdGVyIGFuZCB0aGVuIHBvbGwgdGhlIEJfR1NUU19SRUdfVEUgZmllbGQgaW4gZ2xvYmFs IHN0YXR1cyByZWdpc3RlciBpZiB0aGUgRE1BUiBpcyBleHBlY3RlZCB0byBiZSBkaXNhYmxlZCBv ciBlbmFibGVkIGFjY29yZGluZyB0byBWdC1kIHNwZWNpZmljYXRpb24uDQoNCg0KDQpUaGFua3MN Cg0KSmVycnkgWmhvdQ0KDQpFeHQ6ODkyNDE4DQoNCg0KDQoNCg0KDQoNCi0tLS0t08q8/tStvP4t LS0tLQ0Kt6K8/sjLOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3Rz LjAxLm9yZ10gtPqx7SBTdGFyIFplbmcNCreiy83KsbzkOiAyMDE4xOoxMNTCMjTI1SAxMTozMg0K ytW8/sjLOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmc+DQqzrcvNOiBKaWV3ZW4gWWFvOyBTdGFyIFplbmcNCtb3zOI6IFtlZGsyXSBbUEFUQ0hd IEludGVsU2lsaWNvblBrZyBWVGREeGU6IE9wdGlvbiB0byBmb3JjZSBubyBlYXJseSBhY2Nlc3Mg YXR0ciByZXF1ZXN0DQoNCg0KDQpSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MTI3Mg0KDQoNCg0KVG8gaGF2ZSBoaWdoIGNvbmZpZGVuY2UgaW4gdXNh Z2UgZm9yIHBsYXRmb3JtLCBhZGQgb3B0aW9uIChCSVQyIG9mDQoNClBjZFZUZFBvbGljeVByb3Bl cnR5TWFzaykgdG8gZm9yY2Ugbm8gSU9NTVUgYWNjZXNzIGF0dHJpYnV0ZSByZXF1ZXN0DQoNCnJl Y29yZGluZyBiZWZvcmUgRE1BUiB0YWJsZSBpcyBpbnN0YWxsZWQuDQoNCg0KDQpDaGVjayBQY2RW VGRQb2xpY3lQcm9wZXJ0eU1hc2sgQklUMiBiZWZvcmUgUmVxdWVzdEFjY2Vzc0F0dHJpYnV0ZSgp DQoNCmFuZCBQcm9jZXNzUmVxdWVzdGVkQWNjZXNzQXR0cmlidXRlKCksIHRoZW4gUmVxdWVzdEFj Y2Vzc0F0dHJpYnV0ZSgpLA0KDQpQcm9jZXNzUmVxdWVzdGVkQWNjZXNzQXR0cmlidXRlKCkgYW5k IG1BY2Nlc3NSZXF1ZXN0WFhYIHZhcmlhYmxlcw0KDQpjb3VsZCBiZSBvcHRpbWl6ZWQgYnkgY29t cGlsZXIgd2hlbiBQY2RWVGRQb2xpY3lQcm9wZXJ0eU1hc2sgQklUMiA9IDEuDQoNCg0KDQpUZXN0 IGRvbmU6DQoNCjE6IENyZWF0ZWQgY2FzZSB0aGF0IGhhcyBJT01NVSBhY2Nlc3MgYXR0cmlidXRl IHJlcXVlc3QgYmVmb3JlIERNQVINCg0KICAgdGFibGUgaXMgaW5zdGFsbGVkLCBBU1NFUlQgd2Fz IHRyaWdnZXJlZCBhZnRlciBzZXR0aW5nDQoNCiAgIFBjZFZUZFBvbGljeVByb3BlcnR5TWFzayBC SVQyIHRvIDEuDQoNCg0KDQoyLiBDb25maXJtZWQgUmVxdWVzdEFjY2Vzc0F0dHJpYnV0ZSgpLCBQ cm9jZXNzUmVxdWVzdGVkQWNjZXNzQXR0cmlidXRlKCkNCg0KICAgYW5kIG1BY2Nlc3NSZXF1ZXN0 WFhYIHZhcmlhYmxlcyB3ZXJlIG9wdGltaXplZCBieSBjb21waWxlciBhZnRlcg0KDQogICBzZXR0 aW5nIFBjZFZUZFBvbGljeVByb3BlcnR5TWFzayBCSVQyIHRvIDEuDQoNCg0KDQpDYzogSmlld2Vu IFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj4N Cg0KQ2M6IFJhbmdhc2FpIFYgQ2hhZ2FudHkgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29t PG1haWx0bzpyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4+DQoNCkNvbnRyaWJ1dGVkLXVu ZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCg0KU2lnbmVkLW9mZi1i eTogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPG1haWx0bzpzdGFyLnplbmdAaW50ZWwu Y29tPj4NCg0KLS0tDQoNCkludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZUZC9JbnRlbFZUZER4ZS9E bWFQcm90ZWN0aW9uLmMgfCA4ICsrKysrKystDQoNCkludGVsU2lsaWNvblBrZy9GZWF0dXJlL1ZU ZC9JbnRlbFZUZER4ZS9JbnRlbFZUZER4ZS5jICAgfCA3ICsrKysrKysNCg0KSW50ZWxTaWxpY29u UGtnL0ludGVsU2lsaWNvblBrZy5kZWMgICAgICAgICAgICAgICAgICAgICB8IDEgKw0KDQozIGZp bGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCg0KDQoNCmRpZmYg LS1naXQgYS9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUvRG1hUHJvdGVj dGlvbi5jIGIvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0RtYVByb3Rl Y3Rpb24uYw0KDQppbmRleCA4NmQ1MGViNmYyODguLjc3ODQ1NDU2MzFiMyAxMDA2NDQNCg0KLS0t IGEvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0RtYVByb3RlY3Rpb24u Yw0KDQorKysgYi9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUvRG1hUHJv dGVjdGlvbi5jDQoNCkBAIC01MTUsNyArNTE1LDEzIEBAIFNldHVwVnRkICgNCg0KDQoNCiAgIFBh cnNlRG1hckFjcGlUYWJsZVJtcnIgKCk7DQoNCg0KDQotICBQcm9jZXNzUmVxdWVzdGVkQWNjZXNz QXR0cmlidXRlICgpOw0KDQorICBpZiAoKFBjZEdldDggKFBjZFZUZFBvbGljeVByb3BlcnR5TWFz aykgJiBCSVQyKSA9PSAwKSB7DQoNCisgICAgLy8NCg0KKyAgICAvLyBTdXBwb3J0IElPTU1VIGFj Y2VzcyBhdHRyaWJ1dGUgcmVxdWVzdCByZWNvcmRpbmcgYmVmb3JlIERNQVIgdGFibGUgaXMgaW5z dGFsbGVkLg0KDQorICAgIC8vIEhlcmUgaXMgdG8gcHJvY2VzcyB0aGUgcmVxdWVzdHMuDQoNCisg ICAgLy8NCg0KKyAgICBQcm9jZXNzUmVxdWVzdGVkQWNjZXNzQXR0cmlidXRlICgpOw0KDQorICB9 DQoNCg0KDQogICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBtVnRkVW5pdE51bWJlcjsgSW5kZXgr Kykgew0KDQogICAgIERFQlVHICgoREVCVUdfSU5GTywiVlREIFVuaXQgJWQgKFNlZ21lbnQ6ICUw NHgpXG4iLCBJbmRleCwgbVZ0ZFVuaXRJbmZvcm1hdGlvbltJbmRleF0uU2VnbWVudCkpOw0KDQpk aWZmIC0tZ2l0IGEvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0ludGVs VlRkRHhlLmMgYi9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUvSW50ZWxW VGREeGUuYw0KDQppbmRleCAyNWQ3YzgwYWYxZDQuLjA5OTQ4Y2U1MGU5NCAxMDA2NDQNCg0KLS0t IGEvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0ludGVsVlRkRHhlLmMN Cg0KKysrIGIvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0ludGVsVlRk RHhlLmMNCg0KQEAgLTI1NCw2ICsyNTQsMTMgQEAgVlRkU2V0QXR0cmlidXRlICgNCg0KICAgICAv LyBSZWNvcmQgdGhlIGVudHJ5IHRvIGRyaXZlciBnbG9iYWwgdmFyaWFibGUuDQoNCiAgICAgLy8g QXMgc3VjaCBvbmNlIFZUZCBpcyBhY3RpdmF0ZWQsIHRoZSBzZXR0aW5nIGNhbiBiZSBhZG9wdGVk Lg0KDQogICAgIC8vDQoNCisgICAgaWYgKChQY2RHZXQ4IChQY2RWVGRQb2xpY3lQcm9wZXJ0eU1h c2spICYgQklUMikgIT0gMCkgew0KDQorICAgICAgLy8NCg0KKyAgICAgIC8vIEZvcmNlIG5vIElP TU1VIGFjY2VzcyBhdHRyaWJ1dGUgcmVxdWVzdCByZWNvcmRpbmcgYmVmb3JlIERNQVIgdGFibGUg aXMgaW5zdGFsbGVkLg0KDQorICAgICAgLy8NCg0KKyAgICAgIEFTU0VSVF9FRklfRVJST1IgKEVG SV9OT1RfUkVBRFkpOw0KDQorICAgICAgcmV0dXJuIEVGSV9OT1RfUkVBRFk7DQoNCisgICAgfQ0K DQogICAgIFN0YXR1cyA9IFJlcXVlc3RBY2Nlc3NBdHRyaWJ1dGUgKFNlZ21lbnQsIFNvdXJjZUlk LCBEZXZpY2VBZGRyZXNzLCBMZW5ndGgsIElvTW11QWNjZXNzKTsNCg0KICAgfSBlbHNlIHsNCg0K ICAgICBQRVJGX0NPREUgKA0KDQpkaWZmIC0tZ2l0IGEvSW50ZWxTaWxpY29uUGtnL0ludGVsU2ls aWNvblBrZy5kZWMgYi9JbnRlbFNpbGljb25Qa2cvSW50ZWxTaWxpY29uUGtnLmRlYw0KDQppbmRl eCBiOTY0NmQ3NzNiOTUuLjkwMGU4ZjYzYzY0ZCAxMDA2NDQNCg0KLS0tIGEvSW50ZWxTaWxpY29u UGtnL0ludGVsU2lsaWNvblBrZy5kZWMNCg0KKysrIGIvSW50ZWxTaWxpY29uUGtnL0ludGVsU2ls aWNvblBrZy5kZWMNCg0KQEAgLTY0LDYgKzY0LDcgQEAgW1BjZHNGaXhlZEF0QnVpbGQsIFBjZHNQ YXRjaGFibGVJbk1vZHVsZSwgUGNkc0R5bmFtaWMsIFBjZHNEeW5hbWljRXhdDQoNCiAgICMjIFRo ZSBtYXNrIGlzIHVzZWQgdG8gY29udHJvbCBWVGQgYmVoYXZpb3IuPEJSPjxCUj4NCg0KICAgIyAg QklUMDogRW5hYmxlIElPTU1VIGR1cmluZyBib290IChJZiBETUFSIHRhYmxlIGlzIGluc3RhbGxl ZCBpbiBEWEUuIElmIFZURF9JTkZPX1BQSSBpcyBpbnN0YWxsZWQgaW4gUEVJLikNCg0KICAgIyAg QklUMTogRW5hYmxlIElPTU1VIHdoZW4gdHJhbnNmZXIgY29udHJvbCB0byBPUyAoRXhpdEJvb3RT ZXJ2aWNlIGluIG5vcm1hbCBib290LiBFbmRPZlBFSSBpbiBTMykNCg0KKyAgIyAgQklUMjogRm9y Y2Ugbm8gSU9NTVUgYWNjZXNzIGF0dHJpYnV0ZSByZXF1ZXN0IHJlY29yZGluZyBiZWZvcmUgRE1B UiB0YWJsZSBpcyBpbnN0YWxsZWQuDQoNCiAgICMgQFByb21wdCBUaGUgcG9saWN5IGZvciBWVGQg ZHJpdmVyIGJlaGF2aW9yLg0KDQogICBnSW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNk VlRkUG9saWN5UHJvcGVydHlNYXNrfDF8VUlOVDh8MHgwMDAwMDAwMg0KDQoNCg0KLS0NCg0KMi43 LjAud2luZG93cy4xDQoNCg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXw0KDQplZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KDQplZGsyLWRldmVsQGxpc3Rz LjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+DQoNCmh0dHBzOi8vbGlzdHMu MDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KDQqxo8PcyfnD96O6DQqxvtPKvP66 rNPQsaPD3Lvy16jT0NDFz6KjrL32uanWuLaoytW8/sjLyrnTw6Gj0c+9+7bUsb7Tyrz+u/LG5MTa yN3X9sjOus7OtL6tytrIqLXEsunUxKGiyrnTw6GiuLTWxrvy16q3oqGjDQpDT05GSURFTlRJQUwg Tk9URToNClRoaXMgZW1haWwgY29udGFpbnMgY29uZmlkZW50aWFsIG9yIGxlZ2FsbHkgcHJpdmls ZWdlZCBpbmZvcm1hdGlvbiBhbmQgaXMgZm9yIHRoZSBzb2xlIHVzZSBvZiBpdHMgaW50ZW5kZWQg cmVjaXBpZW50LiBBbnkgdW5hdXRob3JpemVkIHJldmlldywgdXNlLCBjb3B5aW5nIG9yIGZvcndh cmRpbmcgb2YgdGhpcyBlbWFpbCBvciB0aGUgY29udGVudCBvZiB0aGlzIGVtYWlsIGlzIHN0cmlj dGx5IHByb2hpYml0ZWQuDQoNCrGjw9zJ+cP3o7oNCrG+08q8/rqs09Cxo8Pcu/LXqNPQ0MXPoqOs vfa5qda4tqjK1bz+yMvKudPDoaPRz737ttSxvtPKvP678sbkxNrI3df2yM66zs60vq3K2siotcSy 6dTEoaLKudPDoaK4tNbGu/LXqreioaMNCkNPTkZJREVOVElBTCBOT1RFOg0KVGhpcyBlbWFpbCBj b250YWlucyBjb25maWRlbnRpYWwgb3IgbGVnYWxseSBwcml2aWxlZ2VkIGluZm9ybWF0aW9uIGFu ZCBpcyBmb3IgdGhlIHNvbGUgdXNlIG9mIGl0cyBpbnRlbmRlZCByZWNpcGllbnQuIEFueSB1bmF1 dGhvcml6ZWQgcmV2aWV3LCB1c2UsIGNvcHlpbmcgb3IgZm9yd2FyZGluZyBvZiB0aGlzIGVtYWls IG9yIHRoZSBjb250ZW50IG9mIHRoaXMgZW1haWwgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4NCg== --_000_0C09AFA07DD0434D9E2A0C6AEB048310402E56C9shsmsx102ccrcor_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

Actua= lly, I agree with you.

Perso= nally, I think more rigorous flow could be like below.

1.       Clear B_GMCD_REG_TE, wait B_GSTS_REG_TE to be cleared.=

2.       Set B_GMCD_REG_SRTP, wait B_GSTS_REG_RTPS to be set.

3.       Zero R_RTADDR_REG.

=  

Not s= ure original code developer Jiewen=A1=AFs thought about this.

=  

=  

You m= ay submit Bugzilla at https://bugzilla.tianocore.org if you wait.

=  

=  

Thank= s,

Star<= o:p>

=  

From: = Jerry Zhou(BJ-RD) [mailto:JerryZhou@zhaoxin.com]
Sent: Monday, May 13, 2019 7:28 PM
To: Zeng, Star <star.zeng@intel.com>; edk2-devel@lists.01.org;= devel@edk2.groups.io
Cc: Yao, Jiewen <jiewen.yao@intel.com>; Ni, Ray <ray.ni@int= el.com>
Subject:
=B4=F0=B8=B4: = [edk2] [PATCH] IntelSiliconPkg VTdDxe: a question about the source code

 =

Got it! Thanks for you= r reply.

But you should still p= oll the B_GSTS_REG_TE bit, not the B_GSTS_REG_RTPS bit, in the judgement co= de of while() loop.

After & operation = between Reg32 and B_GSTS_REG_RTPS, the status of B_GSTS_REG_TE will be lost= .

 

A more tedious but mor= e reliable operation sequence is recommended in Vt-d specification 2.4 belo= w:

 

to update a bit field in this register at= offset X with value of Y, software

must follow below steps:

1. Tmp =3D Read GSTS_REG

2. Status =3D (Tmp & 96FFFFFFh) // Re= set the one-shot bits

3. Command =3D (Status | (Y << X))<= o:p>

4. Write Command to GCMD_REG

5. Wait until GSTS_REG[X] indicates comma= nd is serviced.

=B7=A2=BC= =FE=C8=CB: Zeng, Star [mailto:star.zeng@i= ntel.com]
=B7=A2=CB=CD=CA=B1=BC=E4: 2019=C4=EA5=D4=C213=C8=D5 18:54
=CA=D5=BC=FE=C8=CB: Jerry Zhou(BJ-RD); <= a href=3D"mailto:edk2-devel@lists.01.org"> edk2-devel@lists.01.org
=B3=AD=CB=CD: Yao, Jiewen; Ni, Ray; Zeng= , Star
=D6=F7=CC=E2: RE: [edk2] [PATCH] IntelSi= liconPkg VTdDxe: a question about the source code

 =

Good = question, my understanding is setting B_GMCD_REG_SRTP(BIT30) ONLY also mean= s clearing B_GMCD_REG_TE (BIT31).

=  

Thank= s,

Star<= o:p>

From: = Jerry Zhou(BJ-RD) [mailto:JerryZho= u@zhaoxin.com]
Sent: Monday, May 13, 2019 10:59 AM
To: Zeng, Star <star.zeng@= intel.com>; edk2-devel@lists.01.org
Cc: Yao, Jiewen <jiewen.y= ao@intel.com>; Ni, Ray <ray.n= i@intel.com>
Subject:
=B4=F0=B8=B4: = [edk2] [PATCH] IntelSiliconPkg VTdDxe: a question about the source code

 =

Hi Star,

         = I'am so interested in DMA protection in UEFI. It's a really good design!

         = But I have a question about the implemention of DisableDmar() in IntelSiliconPkg\feature\vtd\intelvtddxe\VtdReg.c<= /o:p>

         = Is it a typing error in the code segment below?

 

    //

    // Disable VTd

    //

    MmioWrite32 (mVtdUnitInformati= on[Index].VtdUnitBaseAddress + R_GCMD_REG, B_GMCD_REG_SRTP);

    do {

      Reg32 =3D MmioRead= 32 (mVtdUnitInformation[Index].VtdUnitBaseAddress + R_GSTS_REG);

} while((Reg32 &= B_GSTS_REG_RTPS) =3D=3D 0);

 

The software should = program the B_GMCD_REG_TE field in global command register and then poll the = B_GSTS_REG_TE field in global status register if the DMAR is expected t= o be disabled or enabled according to Vt-d specification.

 

Thanks

Jerry Zhou

Ext:892418

 

 

 

-----=D3=CA=BC=FE=D4=AD=BC=FE-----
=B7=A2=BC=FE=C8=CB<= /span>: edk2-devel [mail= to:edk2-devel-bounces@lists.01.org] =B4=FA=B1=ED= Star Zeng
=B7=A2=CB=CD=CA=B1= =BC=E4: 2018= =C4=EA10=D4= =C224=C8=D5<= /span> 11:32
=CA=D5=BC=FE=C8=CB<= /span>: edk2-devel@lists.01.org
=B3=AD=CB=CD= : Jiewen Yao; Star Zeng
=D6=F7=CC=E2= : [edk2] [PATCH] IntelSiliconPkg VTdDxe: Option to force no early access at= tr request

 

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1272

 

To have high confidence in usage for platform, ad= d option (BIT2 of

PcdVTdPolicyPropertyMask) to force no IOMMU acces= s attribute request

recording before DMAR table is installed.

 

Check PcdVTdPolicyPropertyMask BIT2 before Reques= tAccessAttribute()

and ProcessRequestedAccessAttribute(), then Reque= stAccessAttribute(),

ProcessRequestedAccessAttribute() and mAccessRequ= estXXX variables

could be optimized by compiler when PcdVTdPolicyP= ropertyMask BIT2 =3D 1.

 

Test done:

1: Created case that has IOMMU access attribute r= equest before DMAR

   table is installed, ASSERT was trigg= ered after setting

   PcdVTdPolicyPropertyMask BIT2 to 1.<= o:p>

 

2. Confirmed RequestAccessAttribute(), ProcessReq= uestedAccessAttribute()

   and mAccessRequestXXX variables were= optimized by compiler after

   setting PcdVTdPolicyPropertyMask BIT= 2 to 1.

 

Cc: Jiewen Yao <jiewen.yao@intel.com>

Cc: Rangasai V Chaganty <rangasai.v.chaganty@intel.com>

Contributed-under: TianoCore Contribution Agreeme= nt 1.1

Signed-off-by: Star Zeng <star.zeng@intel.com>

---

IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmaProtec= tion.c | 8 +++++++-

IntelSiliconPkg/Feature/VTd/IntelVTdDxe/IntelVTdD= xe.c   | 7 +++++++

IntelSiliconPkg/IntelSiliconPkg.dec  &n= bsp;            = ;      | 1 +

3 files changed, 15 insertions(+), 1 deletion= (-)

 

diff --git a/IntelSiliconPkg/Feature/VTd/IntelVTd= Dxe/DmaProtection.c b/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/DmaProtection= .c

index 86d50eb6f288..7784545631b3 100644

--- a/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/Dma= Protection.c

+++ b/IntelSiliconPkg/Feature/VTd/Int= elVTdDxe/DmaProtection.c

@@ -515,7 +515,13 @@ SetupVtd (

 

   ParseDmarAcpiTableRmrr ();=

 

-  ProcessRequestedAccessAttribute ();<= /o:p>

+  if ((PcdGet8 (PcdVTdPolicyPropertyMas= k) & BIT2) =3D=3D 0) {

+    //

+    // Support IOMMU access a= ttribute request recording before DMAR table is installed.

+    // Here is to process the= requests.

+    //

+    ProcessRequestedAccessAtt= ribute ();

+  }

 

   for (Index =3D 0; Index < mV= tdUnitNumber; Index++) {

     DEBUG ((DEBUG_INFO,"= ;VTD Unit %d (Segment: %04x)\n", Index, mVtdUnitInformation[Index].Seg= ment));

diff --git a/IntelSiliconPkg/Feature/VTd/IntelVTd= Dxe/IntelVTdDxe.c b/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/IntelVTdDxe.c

index 25d7c80af1d4..09948ce50e94 100644

--- a/IntelSiliconPkg/Feature/VTd/IntelVTdDxe/Int= elVTdDxe.c

+++ b/IntelSiliconPkg/Feature/VTd/Int= elVTdDxe/IntelVTdDxe.c

@@ -254,6 +254,13 @@ VTdSetAttribute (

     // Record the entry to d= river global variable.

     // As such once VTd is a= ctivated, the setting can be adopted.

     //

+    if ((PcdGet8 (PcdVTdPolic= yPropertyMask) & BIT2) !=3D 0) {

+      //=

+      // Force no I= OMMU access attribute request recording before DMAR table is installed.

+      //=

+      ASSERT_EFI_ER= ROR (EFI_NOT_READY);

+      return EFI_NO= T_READY;

+    }

     Status =3D RequestAccess= Attribute (Segment, SourceId, DeviceAddress, Length, IoMmuAccess);

   } else {

     PERF_CODE (

diff --git a/IntelSiliconPkg/IntelSiliconPkg.dec = b/IntelSiliconPkg/IntelSiliconPkg.dec

index b9646d773b95..900e8f63c64d 100644

--- a/IntelSiliconPkg/IntelSiliconPkg.dec

+++ b/IntelSiliconPkg/IntelSiliconPkg= .dec

@@ -64,6 +64,7 @@ [PcdsFixedAtBuild, PcdsPatc= hableInModule, PcdsDynamic, PcdsDynamicEx]

   ## The mask is used to control VTd b= ehavior.<BR><BR>

   #  BIT0: Enable IOMMU during bo= ot (If DMAR table is installed in DXE. If VTD_INFO_PPI is installed in PEI.= )

   #  BIT1: Enable IOMMU when tran= sfer control to OS (ExitBootService in normal boot. EndOfPEI in S3)

+  #  BIT2: Force no IOMMU access a= ttribute request recording before DMAR table is installed.

   # @Prompt The policy for VTd driver = behavior.

   gIntelSiliconPkgTokenSpaceGuid.PcdVT= dPolicyPropertyMask|1|UINT8|0x00000002

 

--

2.7.0.windows.1

 

_______________________________________________

edk2-devel mailing list

edk2-d= evel@lists.01.org

https://lists.01.org/mailman/listinfo/edk2-devel=

&n= bsp;

=B1=A3=C3=DC=C9=F9=C3=F7=A3=BA<= /p>

=B1=BE=D3=CA=BC=FE=BA=AC=D3=D0=B1=A3=C3=DC=BB=F2=D7= =A8=D3=D0=D0=C5=CF=A2=A3=AC=BD=F6=B9=A9=D6=B8=B6=A8=CA=D5=BC=FE=C8=CB=CA=B9= =D3=C3=A1=A3=D1=CF=BD=FB=B6=D4=B1=BE=D3=CA=BC=FE=BB=F2=C6=E4=C4=DA=C8=DD=D7= =F6=C8=CE=BA=CE=CE=B4=BE=AD=CA=DA=C8=A8=B5=C4=B2=E9=D4=C4=A1=A2=CA=B9=D3=C3= =A1=A2=B8=B4=D6=C6=BB=F2=D7=AA=B7=A2=A1=A3

CONFIDENTIAL NOTE:

This email contains confidential or legally pr= ivileged information and is for the sole use of its intended recipient. Any unauthorized review, use, copying or forwarding of= this email or the content of this email is strictly prohibited.=

&n= bsp;

=B1=A3=C3=DC=C9=F9=C3=F7=A3=BA<= /p>

=B1=BE=D3=CA=BC=FE=BA=AC=D3=D0=B1=A3=C3=DC=BB=F2=D7= =A8=D3=D0=D0=C5=CF=A2=A3=AC=BD=F6=B9=A9=D6=B8=B6=A8=CA=D5=BC=FE=C8=CB=CA=B9= =D3=C3=A1=A3=D1=CF=BD=FB=B6=D4=B1=BE=D3=CA=BC=FE=BB=F2=C6=E4=C4=DA=C8=DD=D7= =F6=C8=CE=BA=CE=CE=B4=BE=AD=CA=DA=C8=A8=B5=C4=B2=E9=D4=C4=A1=A2=CA=B9=D3=C3= =A1=A2=B8=B4=D6=C6=BB=F2=D7=AA=B7=A2=A1=A3

CONFIDENTIAL NOTE:

This email contains confidential or legally pr= ivileged information and is for the sole use of its intended recipient. Any unauthorized review, use, copying or forwarding of= this email or the content of this email is strictly prohibited.=

--_000_0C09AFA07DD0434D9E2A0C6AEB048310402E56C9shsmsx102ccrcor_--