From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: "Dong, Guo" <guo.dong@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>,
"Kinney, Michael D" <michael.d.kinney@intel.com>
Cc: "Dong, Eric" <eric.dong@intel.com>, "Ni, Ray" <ray.ni@intel.com>,
"lersek@redhat.com" <lersek@redhat.com>,
"Kumar, Rahul1" <rahul1.kumar@intel.com>
Subject: Re: [edk2-devel] [PATCH] UefiCpuPkg/CpuDxe: Fix boot error
Date: Wed, 6 Jan 2021 02:00:44 +0000 [thread overview]
Message-ID: <BL0PR11MB3236F7FB55E6CE329F7A51A9D2D00@BL0PR11MB3236.namprd11.prod.outlook.com> (raw)
In-Reply-To: <DM6PR11MB362741BB83C8D96FDCC57FDF9ED00@DM6PR11MB3627.namprd11.prod.outlook.com>
Hi Guo,
Could be the port from MASM to NASM did not check to see if NASM supported the instruction.
You can verify the NASM disassembly to make sure it matches the DB bytes.
Mike
> -----Original Message-----
> From: Dong, Guo <guo.dong@intel.com>
> Sent: Tuesday, January 5, 2021 4:51 PM
> To: Kinney, Michael D <michael.d.kinney@intel.com>; devel@edk2.groups.io
> Cc: Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; lersek@redhat.com; Kumar, Rahul1
> <rahul1.kumar@intel.com>
> Subject: RE: [edk2-devel] [PATCH] UefiCpuPkg/CpuDxe: Fix boot error
>
>
> Hi Mike,
>
> Thanks for the comments. I will remove DB and submit a new patch.
> I used DB because retfq is used in EDK2 only in OvmfPkg\Library\LoadLinuxLib\X64\JumpToKernel.nasm and it used DB.
> Not sure if there is any BKM why they use it.
>
> Thanks,
> Guo
>
> > -----Original Message-----
> > From: Kinney, Michael D <michael.d.kinney@intel.com>
> > Sent: Monday, January 4, 2021 9:31 PM
> > To: devel@edk2.groups.io; Dong, Guo <guo.dong@intel.com>; Kinney, Michael
> > D <michael.d.kinney@intel.com>
> > Cc: Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>;
> > lersek@redhat.com; Kumar, Rahul1 <rahul1.kumar@intel.com>
> > Subject: RE: [edk2-devel] [PATCH] UefiCpuPkg/CpuDxe: Fix boot error
> >
> > Hi Guo,
> >
> > NASM has good support for instructions. Can the DB be removed and replaced
> > with the equivalent instruction?
> >
> > Thanks,
> >
> > Mike
> >
> > > -----Original Message-----
> > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Guo Dong
> > > Sent: Thursday, December 24, 2020 12:04 PM
> > > To: devel@edk2.groups.io
> > > Cc: Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>;
> > lersek@redhat.com; Kumar, Rahul1
> > > <rahul1.kumar@intel.com>
> > > Subject: [edk2-devel] [PATCH] UefiCpuPkg/CpuDxe: Fix boot error
> > >
> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3084
> > >
> > > When DXE drivers are dispatched above 4GB memory in 64bit
> > > mode, the address setCodeSelectorLongJump in stack will
> > > be override by parameter. Jump to Qword is not supported
> > > by some processors. So use retfq instead.
> > >
> > > Signed-off-by: Guo Dong <guo.dong@intel.com>
> > > ---
> > > UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm | 8 +++-----
> > > 1 file changed, 3 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm
> > b/UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm
> > > index c3489bcc3e..e33ddb2784 100644
> > > --- a/UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm
> > > +++ b/UefiCpuPkg/CpuDxe/X64/CpuAsm.nasm
> > > @@ -20,13 +20,11 @@
> > > ;------------------------------------------------------------------------------
> > > global ASM_PFX(SetCodeSelector)
> > > ASM_PFX(SetCodeSelector):
> > > - sub rsp, 0x10
> > > + push rcx,
> > > lea rax, [setCodeSelectorLongJump]
> > > - mov [rsp], rax
> > > - mov [rsp+4], cx
> > > - jmp dword far [rsp]
> > > + push rax
> > > + DB 0x48, 0xcb ; retfq
> > > setCodeSelectorLongJump:
> > > - add rsp, 0x10
> > > ret
> > >
> > > ;------------------------------------------------------------------------------
> > > --
> > > 2.16.2.windows.1
> > >
> > >
> > >
> > >
> > >
next prev parent reply other threads:[~2021-01-06 2:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-24 20:04 [edk2-devel] [PATCH] UefiCpuPkg/CpuDxe: Fix boot error Guo Dong
2021-01-05 4:31 ` Michael D Kinney
2021-01-06 0:51 ` Guo Dong
2021-01-06 2:00 ` Michael D Kinney [this message]
2021-01-06 15:37 ` Laszlo Ersek
2021-01-06 14:25 ` Laszlo Ersek
-- strict thread matches above, loose matches on Subject: below --
2020-12-02 21:38 Guo Dong
2020-12-03 2:23 ` Ni, Ray
2020-12-03 7:08 ` Dong, Eric
2020-12-03 10:21 ` Laszlo Ersek
2020-12-08 21:39 ` Guo Dong
2020-12-09 20:02 ` Lendacky, Thomas
2020-12-10 8:49 ` Laszlo Ersek
2020-12-10 14:37 ` Lendacky, Thomas
2020-12-10 16:54 ` Guo Dong
2020-12-11 1:47 ` Ni, Ray
2020-12-11 3:11 ` Guo Dong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BL0PR11MB3236F7FB55E6CE329F7A51A9D2D00@BL0PR11MB3236.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox