From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web12.3480.1614041466314004891 for ; Mon, 22 Feb 2021 16:51:08 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: fanjianfeng@byosoft.com.cn) Received: from DESKTOP-M5NI163 ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Tue, 23 Feb 2021 08:50:31 +0800 X-WM-Sender: fanjianfeng@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: fanjianfeng@byosoft.com.cn Date: Tue, 23 Feb 2021 08:50:25 +0800 From: fanjianfeng@byosoft.com.cn To: devel , maurice.ma , "Patrick Rudolph" , =?UTF-8?B?RG9uZywgR3Vv?= , =?UTF-8?B?RG9uZywgRXJpYw==?= , =?UTF-8?B?TmksIFJheQ==?= Cc: "devel@edk2.groups.io" , =?UTF-8?B?WW91LCBCZW5qYW1pbg==?= Subject: Re: [edk2-devel] [PATCH] UefiPayloadPkg/UefiPayloadEntry: Remove 4GB memory WA References: <20210215051308.11796-1-guo.dong@intel.com>, , , , , X-Priority: 3 X-Has-Attach: no X-Mailer: Foxmail 7.2.20.269[cn] Mime-Version: 1.0 Message-ID: <202102230850236136429@byosoft.com.cn> Content-Type: multipart/alternative; boundary="----=_001_NextPart474764876505_=----" ------=_001_NextPart474764876505_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 d2Ugd2lsbCBzYXZlIHRoZSBjdXJyZW50IEJTUCdzIEdEVCBhbmQgSURUIGZvciBBUHMgYXQgZmly c3QgdGltZSBBUHMgYXJlIHdha2VuIGJ5IEJTUCBhcyBiZWxvdy4gQVBzIHdpbGwgc3RhcnQgZnJv bSByZWFsIG1vZGUgdG8gcHJvdGVjdGVkIG1vZGUgYW5kIHRoZW4gdG8gbG9uZyBtb2RlLiBEdXJp bmcgcHJvdGVjdGVkIG1vZGUsIEJTUCdzIEdEVC9JRFQgdGFibGUgYXJlIHdvcmtpbmcgb24gQVBz Lg0KDQpJbiBVZWZpQ3B1UGtnXExpYnJhcnlcTXBJbml0TGliXE1wTGliLmMsIA0KICAvLw0KICAv LyBHZXQgdGhlIEJTUCdzIGRhdGEgb2YgR0RUIGFuZCBJRFQNCiAgLy8NCiAgQXNtUmVhZEdkdHIg KChJQTMyX0RFU0NSSVBUT1IgKikgJkV4Y2hhbmdlSW5mby0+R2R0clByb2ZpbGUpOw0KICBBc21S ZWFkSWR0ciAoKElBMzJfREVTQ1JJUFRPUiAqKSAmRXhjaGFuZ2VJbmZvLT5JZHRyUHJvZmlsZSk7 DQoNCkl0IHNlZW1zIHRvIGJlIG9uZSBidWcgd2UgaGF2ZSBhc3N1bXB0aW9uIG9uIEdEVCB0YWJs ZSBhbmQgSURUIHRhYmxlIGxvY2F0ZWQgdW5kZXIgNEcgbWVtb3J5IHNwYWNlLg0KDQpDb3VsZCBS YXkmRXJpYyBoZWxwIG1lIHRvIGNvbmZpcm0gaXQ/DQoNCkplZmYNCg0KRnJvbTogTWEsIE1hdXJp Y2UNCkRhdGU6IDIwMjEtMDItMjMgMDA6NDkNClRvOiBQYXRyaWNrIFJ1ZG9scGg7IERvbmcsIEd1 bzsgRG9uZywgRXJpYzsgTmksIFJheQ0KQ0M6IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBZb3UsIEJl bmphbWluDQpTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gVWVmaVBheWxvYWRQa2cv VWVmaVBheWxvYWRFbnRyeTogUmVtb3ZlIDRHQiBtZW1vcnkgV0ENCkhpLCBSYXkgYW5kIEVyaWMs DQogDQpJcyB0aGVyZSBhbnkgcmVhc29uIHdoeSB0aGUgR0RUIGJhc2Ugd2FzIHR5cGVjYXN0IHRv IFVJTlQzMiBpbiBDcHVEeGUgZHJpdmVyID8gIA0KSW4geDY0IGxvbmcgbW9kZSwgdGhlIEdEVCBi YXNlIGlzIGFjdHVhbGx5IDY0Yml0LiAgIFR5cGVjYXN0aW5nIHdpbGwgemVybyBvdXQgdGhlIGhp Z2ggMzJiaXQgYWRkcmVzcy4NClRvIG1lIHRoZSBjb3JyZWN0IGNvZGUgc2VlbXMgdG8gYmUgc29t ZXRoaW5nIGxpa2U6IA0KZ2R0UHRyLkJhc2UgPSAoVUlOVE4pKFZPSUQqKSBnZHQ7DQogDQpUaGFu a3MNCk1hdXJpY2UNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUGF0cmlj ayBSdWRvbHBoIDxwYXRyaWNrLnJ1ZG9scGhAOWVsZW1lbnRzLmNvbT4NCj4gU2VudDogTW9uZGF5 LCBGZWJydWFyeSAyMiwgMjAyMSA3OjQzDQo+IFRvOiBEb25nLCBHdW8gPGd1by5kb25nQGludGVs LmNvbT4NCj4gQ2M6IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBNYSwgTWF1cmljZSA8bWF1cmljZS5t YUBpbnRlbC5jb20+OyBZb3UsDQo+IEJlbmphbWluIDxiZW5qYW1pbi55b3VAaW50ZWwuY29tPg0K PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gVWVmaVBheWxvYWRQa2cvVWVmaVBh eWxvYWRFbnRyeToNCj4gUmVtb3ZlIDRHQiBtZW1vcnkgV0ENCj4gDQo+IEhpIEd1bywNCj4gSSB0 ZXN0ZWQgb24gMDc4NDAwZWUxNWU3YjI1MGU0ZGZhZmQ4NDBjMmUwYzE5ODM1ZTE2YiBhbmQgcnVu IGl0IGluDQo+IFFFTVUuDQo+IFRoZSBwcm9ibGVtIHNlZW1zIHRvIGJlIGhlcmUsIGFzIGdkdCBp cyBhbGxvY2F0ZWQgPiA0R2lCOg0KPiBnZHRQdHIuQmFzZSA9IChVSU5UMzIpKFVJTlROKShWT0lE KikgZ2R0Ow0KPiANCj4gUmVnYXJkcywNCj4gUGF0cmljaw0KPiANCj4gT24gTW9uLCBGZWIgMjIs IDIwMjEgYXQgMzo1OSBQTSBEb25nLCBHdW8gPGd1by5kb25nQGludGVsLmNvbT4gd3JvdGU6DQo+ ID4NCj4gPg0KPiA+IEhpIFBhdHJpY2ssDQo+ID4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgYXJlIHVz aW5nIGxhdGVzdCBtYXN0ZXIgd2hlbiB0ZXN0aW5nIHRoaXMgcGF0Y2guDQo+ID4gVGhhdCBpc3N1 ZSBzaG91bGQgYmUgZml4IGJlIHRoaXMgcGF0Y2g6DQo+ID4gVWVmaUNwdVBrZy9DcHVEeGU6IEZp eCBib290IGVycm9yIChjb21taXQ6DQo+ID4gZWJmZTJkM2ViNWFjN2ZkOTJkNzQwMTFlZGIzMTMw M2ExODE5MjBjNykNCj4gPiBBbmQgdGhlcmUgaXMgc2ltaWxhciBmaXggaW4gYW5vdGhlciBwbGFj ZSBhcyBiZWxvdzoNCj4gPiBVZWZpQ3B1UGtnL01wSW5pdExpYjogRml4IGEgaGFuZyBpbiBhYm92 ZSA0R0IgY2FzZSAoY29tbWl0Og0KPiA+IGVkZDc0YWQzYWQ3OWI4NTVmNzZkOWNmNjBhOTZjNDA1 Y2IzZTg2M2IpDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gR3VvDQo+ID4NCj4gPiA+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2 ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+ID4gUGF0cmljayBSdWRvbHBoDQo+ ID4gPiBTZW50OiBNb25kYXksIEZlYnJ1YXJ5IDIyLCAyMDIxIDc6MDQgQU0NCj4gPiA+IFRvOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTWEsIE1hdXJpY2UgPG1hdXJpY2UubWFAaW50ZWwuY29tPg0K PiA+ID4gQ2M6IERvbmcsIEd1byA8Z3VvLmRvbmdAaW50ZWwuY29tPjsgWW91LCBCZW5qYW1pbg0K PiA+ID4gPGJlbmphbWluLnlvdUBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSZTogW2VkazIt ZGV2ZWxdIFtQQVRDSF0gVWVmaVBheWxvYWRQa2cvVWVmaVBheWxvYWRFbnRyeToNCj4gPiA+IFJl bW92ZSA0R0IgbWVtb3J5IFdBDQo+ID4gPg0KPiA+ID4gVGhpcyBwYXRjaCBicmVha3MgYm9vdGlu ZyBvbiBtYXN0ZXIuDQo+ID4gPiBJbiBDcHVEeGUuZWZpIC8gSW5pdEdsb2JhbERlc2NyaXB0b3JU YWJsZSBhcyB0aGUgR0RUIHBvaW50ZXIgaXMNCj4gPiA+IGNhc3RlZCB0byAzMmJpdHMuDQo+ID4g Pg0KPiA+ID4gUmVnYXJkcywNCj4gPiA+IFBhdHJpY2sNCj4gPiA+DQo+ID4gPiBPbiBGcmksIEZl YiAxOSwgMjAyMSBhdCAzOjEyIEFNIE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT4N Cj4gd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+IFJldmlld2VkLWJ5OiAgTWF1cmljZSBNYSA8bWF1 cmljZS5tYUBpbnRlbC5jb20+DQo+ID4gPiA+DQo+ID4gPiA+IFJlZ2FyZHMNCj4gPiA+ID4gTWF1 cmljZQ0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4g PiA+ID4gRnJvbTogRG9uZywgR3VvIDxndW8uZG9uZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gU2Vu dDogU3VuZGF5LCBGZWJydWFyeSAxNCwgMjAyMSAyMToxMw0KPiA+ID4gPiA+IFRvOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiA+IENjOiBNYSwgTWF1cmljZSA8bWF1cmljZS5tYUBpbnRl bC5jb20+OyBZb3UsIEJlbmphbWluDQo+ID4gPiA+ID4gPGJlbmphbWluLnlvdUBpbnRlbC5jb20+ DQo+ID4gPiA+ID4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSF0gVWVmaVBheWxvYWRQa2cv VWVmaVBheWxvYWRFbnRyeToNCj4gPiA+ID4gPiBSZW1vdmUgNEdCIG1lbW9yeSBXQQ0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gUHJldmlvdXMgaXQgd291bGQgaGFuZyBpbiBDcHVEeGUgaWYgRFhFIGRy aXZlcnMgYXJlIGRpc3BhdGNoZWQgYWJvdmUNCj4gNEdCLg0KPiA+ID4gPiA+IE5vdyByZW1vdmUg dGhlIHdvcmsgYXJvdW5kIHNpbmNlIHRoZSBmaXhlZCBpbiBDcHVEeGUgYXJlIG1lcmdlZC4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEd1byBEb25nIDxndW8uZG9uZ0BpbnRl bC5jb20+DQo+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gIFVlZmlQYXlsb2FkUGtnL1VlZmlQYXls b2FkRW50cnkvVWVmaVBheWxvYWRFbnRyeS5jIHwgNSAtLS0tLQ0KPiA+ID4gPiA+ICAxIGZpbGUg Y2hhbmdlZCwgNSBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IGRpZmYgLS1naXQg YS9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZEVudHJ5L1VlZmlQYXlsb2FkRW50cnkuYw0KPiA+ ID4gPiA+IGIvVWVmaVBheWxvYWRQa2cvVWVmaVBheWxvYWRFbnRyeS9VZWZpUGF5bG9hZEVudHJ5 LmMNCj4gPiA+ID4gPiBpbmRleCA4MDVmNTQ0OGQ5Li5jNDAzYjBhODBhIDEwMDY0NA0KPiA+ID4g PiA+IC0tLSBhL1VlZmlQYXlsb2FkUGtnL1VlZmlQYXlsb2FkRW50cnkvVWVmaVBheWxvYWRFbnRy eS5jDQo+ID4gPiA+ID4gKysrIGIvVWVmaVBheWxvYWRQa2cvVWVmaVBheWxvYWRFbnRyeS9VZWZp UGF5bG9hZEVudHJ5LmMNCj4gPiA+ID4gPiBAQCAtNDAsMTEgKzQwLDYgQEAgTWVtSW5mb0NhbGxi YWNrICgNCj4gPiA+ID4gPiAgICAgICAgICAgICAgIEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfV1JJ VEVfVEhST1VHSF9DQUNIRUFCTEUgfA0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgRUZJX1JFU09V UkNFX0FUVFJJQlVURV9XUklURV9CQUNLX0NBQ0hFQUJMRTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IC0gIGlmIChCYXNlID49IEJBU0VfNEdCICkgew0KPiA+ID4gPiA+IC0gICAgLy8gUmVtb3ZlIHRl c3RlZCBhdHRyaWJ1dGUgdG8gYXZvaWQgRFhFIGNvcmUgdG8gZGlzcGF0Y2ggZHJpdmVyIHRvDQo+ ID4gPiA+ID4gbWVtb3J5IGFib3ZlIDRHQg0KPiA+ID4gPiA+IC0gICAgQXR0cmlidWUgJj0gfkVG SV9SRVNPVVJDRV9BVFRSSUJVVEVfVEVTVEVEOw0KPiA+ID4gPiA+IC0gIH0NCj4gPiA+ID4gPiAt DQo+ID4gPiA+ID4gICAgQnVpbGRSZXNvdXJjZURlc2NyaXB0b3JIb2IgKFR5cGUsIEF0dHJpYnVl LA0KPiA+ID4gPiA+IChFRklfUEhZU0lDQUxfQUREUkVTUylCYXNlLCBTaXplKTsNCj4gPiA+ID4g PiAgICBERUJVRyAoKERFQlVHX0lORk8gLCAiYnVpbGRob2I6IGJhc2UgPSAweCVseCwgc2l6ZSA9 IDB4JWx4LA0KPiA+ID4gPiA+IHR5cGUgPSAweCV4XG4iLCBCYXNlLCBTaXplLCBUeXBlKSk7DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+IDIuMTYuMi53aW5kb3dzLjENCj4gPiA+ ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+DQo+ ID4gPg0KPiA+ID4gDQo+ID4gPg0KPiA+DQogDQogDQoNCiANCiANCg== ------=_001_NextPart474764876505_=---- Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
we will save the current BSP's GDT and IDT for APs at fi= rst time APs are waken by BSP as below. APs will start from real mode to pr= otected mode and then to long mode. During protected mode, BSP's GDT/IDT ta= ble are working on APs.

In UefiCpuPkg\Library\MpInitLib\MpLib.c, 
  //
  // Get the BSP's data of GDT and IDT
  //
  AsmReadGdtr ((IA32_DESCRIPTOR *) &Exc= hangeInfo->GdtrProfile);
  AsmReadIdtr ((IA32_DESCRIPTOR = *) &ExchangeInfo->IdtrProfile);

It se= ems to be one bug we have assumption on GDT table and IDT table located und= er 4G memory space.

Could Ray&Eric help me to = confirm it?

Jeff

Date: 2021-02-= 23 00:49
Subject: = ;Re: [edk2-devel] [PATCH] UefiPayloadPkg/UefiPayloadEntry: Remove 4GB memor= y WA
Hi, Ray and Eric,
 
Is there any reason why the GDT base was typecast to UINT32 in CpuDxe= driver ? 
In x64 long mode, the GDT base is actually 64bit.   Typecas= ting will zero out the high 32bit address.
To me the correct code seems to be something like:
gdtPtr.Base =3D (UINTN)(VOID*) gdt;
 
Thanks
Maurice
> -----Original Message-----
> From: Patrick Rudolph <patrick.rudolph@9elements.com>
> Sent: Monday, February 22, 2021 7:43
> To: Dong, Guo <guo.dong@intel.com>
> Cc: devel@edk2.groups.io; Ma, Maurice <maurice.ma@intel.com&g= t;; You,
> Benjamin <benjamin.you@intel.com>
> Subject: Re: [edk2-devel] [PATCH] UefiPayloadPkg/UefiPayloadEntr= y:
> Remove 4GB memory WA
>
> Hi Guo,
> I tested on 078400ee15e7b250e4dfafd840c2e0c19835e16b and run it = in
> QEMU.
> The problem seems to be here, as gdt is allocated > 4GiB:
> gdtPtr.Base =3D (UINT32)(UINTN)(VOID*) gdt;
>
> Regards,
> Patrick
>
> On Mon, Feb 22, 2021 at 3:59 PM Dong, Guo <guo.dong@intel.com= > wrote:
> >
> >
> > Hi Patrick,
> > Please make sure you are using latest master when testing t= his patch.
> > That issue should be fix be this patch:
> > UefiCpuPkg/CpuDxe: Fix boot error (commit:
> > ebfe2d3eb5ac7fd92d74011edb31303a181920c7)
> > And there is similar fix in another place as below:
> > UefiCpuPkg/MpInitLib: Fix a hang in above 4GB case (commit:=
> > edd74ad3ad79b855f76d9cf60a96c405cb3e863b)
> >
> > Thanks,
> > Guo
> >
> > > -----Original Message-----
> > > From: devel@edk2.groups.io <devel@edk2.groups.io>= ; On Behalf Of
> > > Patrick Rudolph
> > > Sent: Monday, February 22, 2021 7:04 AM
> > > To: devel@edk2.groups.io; Ma, Maurice <maurice.ma@i= ntel.com>
> > > Cc: Dong, Guo <guo.dong@intel.com>; You, Benjami= n
> > > <benjamin.you@intel.com>
> > > Subject: Re: [edk2-devel] [PATCH] UefiPayloadPkg/UefiP= ayloadEntry:
> > > Remove 4GB memory WA
> > >
> > > This patch breaks booting on master.
> > > In CpuDxe.efi / InitGlobalDescriptorTable as the GDT p= ointer is
> > > casted to 32bits.
> > >
> > > Regards,
> > > Patrick
> > >
> > > On Fri, Feb 19, 2021 at 3:12 AM Ma, Maurice <mauric= e.ma@intel.com>
> wrote:
> > > >
> > > > Reviewed-by:  Maurice Ma <maurice.ma@inte= l.com>
> > > >
> > > > Regards
> > > > Maurice
> > > >
> > > > > -----Original Message-----
> > > > > From: Dong, Guo <guo.dong@intel.com>
> > > > > Sent: Sunday, February 14, 2021 21:13
> > > > > To: devel@edk2.groups.io
> > > > > Cc: Ma, Maurice <maurice.ma@intel.com>= ; You, Benjamin
> > > > > <benjamin.you@intel.com>
> > > > > Subject: [edk2-devel] [PATCH] UefiPayloadPkg= /UefiPayloadEntry:
> > > > > Remove 4GB memory WA
> > > > >
> > > > > Previous it would hang in CpuDxe if DXE driv= ers are dispatched above
> 4GB.
> > > > > Now remove the work around since the fixed i= n CpuDxe are merged.
> > > > >
> > > > > Signed-off-by: Guo Dong <guo.dong@intel.c= om>
> > > > > ---
> > > > >  UefiPayloadPkg/UefiPayloadEntry/UefiPa= yloadEntry.c | 5 -----
> > > > >  1 file changed, 5 deletions(-)
> > > > >
> > > > > diff --git a/UefiPayloadPkg/UefiPayloadEntry= /UefiPayloadEntry.c
> > > > > b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloa= dEntry.c
> > > > > index 805f5448d9..c403b0a80a 100644
> > > > > --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPa= yloadEntry.c
> > > > > +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPa= yloadEntry.c
> > > > > @@ -40,11 +40,6 @@ MemInfoCallback (
> > > > >       &nb= sp;       EFI_RESOURCE_ATTRIBUTE_WRITE_THROUG= H_CACHEABLE |
> > > > >       &nb= sp;       EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_C= ACHEABLE;
> > > > >
> > > > > -  if (Base >=3D BASE_4GB ) {
> > > > > -    // Remove tested attribu= te to avoid DXE core to dispatch driver to
> > > > > memory above 4GB
> > > > > -    Attribue &=3D ~EFI_R= ESOURCE_ATTRIBUTE_TESTED;
> > > > > -  }
> > > > > -
> > > > >    BuildResourceDescriptorHob= (Type, Attribue,
> > > > > (EFI_PHYSICAL_ADDRESS)Base, Size);
> > > > >    DEBUG ((DEBUG_INFO , "buil= dhob: base =3D 0x%lx, size =3D 0x%lx,
> > > > > type =3D 0x%x\n", Base, Size, Type));
> > > > >
> > > > > --
> > > > > 2.16.2.windows.1
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > >
> >
 
 
 
 
------=_001_NextPart474764876505_=------