[edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix AsmRelocateApMailBoxLoop

Isaku Yamahata posted 1 patch 1 year, 10 months ago
Failed in applying to current master (apply log)
OvmfPkg/TdxDxe/X64/ApRunLoop.nasm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix AsmRelocateApMailBoxLoop
Posted by Isaku Yamahata 1 year, 10 months ago
In TDX, Application Processor busy-loops on Mailbox for OS to issue
MpProtectedModeWakeupCommandWakeup command to UEFI.  As the AP acking to
it, it clears the command member according to ACPI spec 6.4, 5.2.12.19
Multiprocessor Wakeup Structure: "The application processor need clear the
command to Noop(0) as the acknowledgement that the command is received."
However, AsmRelocateApMailBoxLoop wrongly clears WakeupVector.  Correctly
clear command instead of WakeupVector.

Without this patch, TD guest kernel fails to boot APs.

Fixes: fae5c1464d ("OvmfPkg: Add TdxDxe driver")
Cc: Min Xu <min.m.xu@intel.com>
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
---
 OvmfPkg/TdxDxe/X64/ApRunLoop.nasm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
index 49bd04415c..a859375fb8 100644
--- a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
+++ b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
@@ -69,7 +69,7 @@ MailBoxWakeUp:
     mov        rax, [rbx + WakeupVectorOffset]
     ; OS sends a wakeup command for a given APIC ID, firmware is supposed to reset
     ; the command field back to zero as acknowledgement.
-    mov        qword [rbx + WakeupVectorOffset], 0
+    mov        qword [rbx + CommandOffset], 0
     jmp        rax
 MailBoxSleep:
     jmp       $
-- 
2.25.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89982): https://edk2.groups.io/g/devel/message/89982
Mute This Topic: https://groups.io/mt/91307432/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix AsmRelocateApMailBoxLoop
Posted by Min Xu 1 year, 10 months ago
On May 24, 2022 3:54 PM, Yamahata, Isaku wrote:
> 
> In TDX, Application Processor busy-loops on Mailbox for OS to issue
> MpProtectedModeWakeupCommandWakeup command to UEFI.  As the AP
> acking to it, it clears the command member according to ACPI spec 6.4,
> 5.2.12.19 Multiprocessor Wakeup Structure: "The application processor
> need clear the command to Noop(0) as the acknowledgement that the
> command is received."
> However, AsmRelocateApMailBoxLoop wrongly clears WakeupVector.
> Correctly clear command instead of WakeupVector.
> 
> Without this patch, TD guest kernel fails to boot APs.
> 
> Fixes: fae5c1464d ("OvmfPkg: Add TdxDxe driver")
> Cc: Min Xu <min.m.xu@intel.com>
> Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
> ---
>  OvmfPkg/TdxDxe/X64/ApRunLoop.nasm | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> index 49bd04415c..a859375fb8 100644
> --- a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> +++ b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> @@ -69,7 +69,7 @@ MailBoxWakeUp:
>      mov        rax, [rbx + WakeupVectorOffset]     ; OS sends a wakeup command
> for a given APIC ID, firmware is supposed to reset     ; the command field back
> to zero as acknowledgement.-    mov        qword [rbx + WakeupVectorOffset],
> 0+    mov        qword [rbx + CommandOffset], 0     jmp        rax MailBoxSleep:
> jmp       $--
> 2.25.1

Thanks Isaku. 
Reviewed-by: Min Xu <min.m.xu@intel.com>



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89981): https://edk2.groups.io/g/devel/message/89981
Mute This Topic: https://groups.io/mt/91307432/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
回复: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix AsmRelocateApMailBoxLoop
Posted by gaoliming 1 year, 10 months ago
Min, Isaku, Jiewen:
  Is this patch required to catch edk2 202205 stable tag?

Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Min Xu
> 发送时间: 2022年5月24日 17:14
> 收件人: Yamahata, Isaku <isaku.yamahata@intel.com>;
> devel@edk2.groups.io
> 主题: Re: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix
> AsmRelocateApMailBoxLoop
> 
> On May 24, 2022 3:54 PM, Yamahata, Isaku wrote:
> >
> > In TDX, Application Processor busy-loops on Mailbox for OS to issue
> > MpProtectedModeWakeupCommandWakeup command to UEFI.  As the
> AP
> > acking to it, it clears the command member according to ACPI spec 6.4,
> > 5.2.12.19 Multiprocessor Wakeup Structure: "The application processor
> > need clear the command to Noop(0) as the acknowledgement that the
> > command is received."
> > However, AsmRelocateApMailBoxLoop wrongly clears WakeupVector.
> > Correctly clear command instead of WakeupVector.
> >
> > Without this patch, TD guest kernel fails to boot APs.
> >
> > Fixes: fae5c1464d ("OvmfPkg: Add TdxDxe driver")
> > Cc: Min Xu <min.m.xu@intel.com>
> > Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
> > ---
> >  OvmfPkg/TdxDxe/X64/ApRunLoop.nasm | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > index 49bd04415c..a859375fb8 100644
> > --- a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > +++ b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > @@ -69,7 +69,7 @@ MailBoxWakeUp:
> >      mov        rax, [rbx + WakeupVectorOffset]     ; OS sends a
> wakeup command
> > for a given APIC ID, firmware is supposed to reset     ; the command
field
> back
> > to zero as acknowledgement.-    mov        qword [rbx +
> WakeupVectorOffset],
> > 0+    mov        qword [rbx + CommandOffset], 0     jmp
> rax MailBoxSleep:
> > jmp       $--
> > 2.25.1
> 
> Thanks Isaku.
> Reviewed-by: Min Xu <min.m.xu@intel.com>
> 
> 
> 
> 
> 







-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89991): https://edk2.groups.io/g/devel/message/89991
Mute This Topic: https://groups.io/mt/91326155/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix AsmRelocateApMailBoxLoop
Posted by Yao, Jiewen 1 year, 10 months ago
Agree to merge to stable tag. Thanks for the reminder.

Reviewed-by: Jiewen Yao@intel.com

> -----Original Message-----
> From: gaoliming <gaoliming@byosoft.com.cn>
> Sent: Wednesday, May 25, 2022 10:40 AM
> To: devel@edk2.groups.io; Xu, Min M <min.m.xu@intel.com>; Yamahata, Isaku
> <isaku.yamahata@intel.com>
> Cc: Yao, Jiewen <jiewen.yao@intel.com>
> Subject: 回复: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix
> AsmRelocateApMailBoxLoop
> 
> Min, Isaku, Jiewen:
>   Is this patch required to catch edk2 202205 stable tag?
> 
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Min Xu
> > 发送时间: 2022年5月24日 17:14
> > 收件人: Yamahata, Isaku <isaku.yamahata@intel.com>;
> > devel@edk2.groups.io
> > 主题: Re: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix
> > AsmRelocateApMailBoxLoop
> >
> > On May 24, 2022 3:54 PM, Yamahata, Isaku wrote:
> > >
> > > In TDX, Application Processor busy-loops on Mailbox for OS to issue
> > > MpProtectedModeWakeupCommandWakeup command to UEFI.  As the
> > AP
> > > acking to it, it clears the command member according to ACPI spec 6.4,
> > > 5.2.12.19 Multiprocessor Wakeup Structure: "The application processor
> > > need clear the command to Noop(0) as the acknowledgement that the
> > > command is received."
> > > However, AsmRelocateApMailBoxLoop wrongly clears WakeupVector.
> > > Correctly clear command instead of WakeupVector.
> > >
> > > Without this patch, TD guest kernel fails to boot APs.
> > >
> > > Fixes: fae5c1464d ("OvmfPkg: Add TdxDxe driver")
> > > Cc: Min Xu <min.m.xu@intel.com>
> > > Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
> > > ---
> > >  OvmfPkg/TdxDxe/X64/ApRunLoop.nasm | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > > b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > > index 49bd04415c..a859375fb8 100644
> > > --- a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > > +++ b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > > @@ -69,7 +69,7 @@ MailBoxWakeUp:
> > >      mov        rax, [rbx + WakeupVectorOffset]     ; OS sends a
> > wakeup command
> > > for a given APIC ID, firmware is supposed to reset     ; the command
> field
> > back
> > > to zero as acknowledgement.-    mov        qword [rbx +
> > WakeupVectorOffset],
> > > 0+    mov        qword [rbx + CommandOffset], 0     jmp
> > rax MailBoxSleep:
> > > jmp       $--
> > > 2.25.1
> >
> > Thanks Isaku.
> > Reviewed-by: Min Xu <min.m.xu@intel.com>
> >
> >
> >
> > 
> >
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#89993): https://edk2.groups.io/g/devel/message/89993
Mute This Topic: https://groups.io/mt/91326368/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix AsmRelocateApMailBoxLoop
Posted by Yao, Jiewen 1 year, 10 months ago
Merged https://github.com/tianocore/edk2/pull/2915

> -----Original Message-----
> From: Yao, Jiewen
> Sent: Wednesday, May 25, 2022 11:01 AM
> To: 'gaoliming' <gaoliming@byosoft.com.cn>; devel@edk2.groups.io; Xu, Min
> M <min.m.xu@intel.com>; Yamahata, Isaku <isaku.yamahata@intel.com>
> Subject: RE: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix
> AsmRelocateApMailBoxLoop
> 
> Agree to merge to stable tag. Thanks for the reminder.
> 
> Reviewed-by: Jiewen Yao@intel.com
> 
> > -----Original Message-----
> > From: gaoliming <gaoliming@byosoft.com.cn>
> > Sent: Wednesday, May 25, 2022 10:40 AM
> > To: devel@edk2.groups.io; Xu, Min M <min.m.xu@intel.com>; Yamahata,
> Isaku
> > <isaku.yamahata@intel.com>
> > Cc: Yao, Jiewen <jiewen.yao@intel.com>
> > Subject: 回复: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix
> > AsmRelocateApMailBoxLoop
> >
> > Min, Isaku, Jiewen:
> >   Is this patch required to catch edk2 202205 stable tag?
> >
> > Thanks
> > Liming
> > > -----邮件原件-----
> > > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Min Xu
> > > 发送时间: 2022年5月24日 17:14
> > > 收件人: Yamahata, Isaku <isaku.yamahata@intel.com>;
> > > devel@edk2.groups.io
> > > 主题: Re: [edk2-devel] [PATCH] OvmfPkg: TdxDxe: Fix
> > > AsmRelocateApMailBoxLoop
> > >
> > > On May 24, 2022 3:54 PM, Yamahata, Isaku wrote:
> > > >
> > > > In TDX, Application Processor busy-loops on Mailbox for OS to issue
> > > > MpProtectedModeWakeupCommandWakeup command to UEFI.  As the
> > > AP
> > > > acking to it, it clears the command member according to ACPI spec 6.4,
> > > > 5.2.12.19 Multiprocessor Wakeup Structure: "The application processor
> > > > need clear the command to Noop(0) as the acknowledgement that the
> > > > command is received."
> > > > However, AsmRelocateApMailBoxLoop wrongly clears WakeupVector.
> > > > Correctly clear command instead of WakeupVector.
> > > >
> > > > Without this patch, TD guest kernel fails to boot APs.
> > > >
> > > > Fixes: fae5c1464d ("OvmfPkg: Add TdxDxe driver")
> > > > Cc: Min Xu <min.m.xu@intel.com>
> > > > Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
> > > > ---
> > > >  OvmfPkg/TdxDxe/X64/ApRunLoop.nasm | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > > > b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > > > index 49bd04415c..a859375fb8 100644
> > > > --- a/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > > > +++ b/OvmfPkg/TdxDxe/X64/ApRunLoop.nasm
> > > > @@ -69,7 +69,7 @@ MailBoxWakeUp:
> > > >      mov        rax, [rbx + WakeupVectorOffset]     ; OS sends a
> > > wakeup command
> > > > for a given APIC ID, firmware is supposed to reset     ; the command
> > field
> > > back
> > > > to zero as acknowledgement.-    mov        qword [rbx +
> > > WakeupVectorOffset],
> > > > 0+    mov        qword [rbx + CommandOffset], 0     jmp
> > > rax MailBoxSleep:
> > > > jmp       $--
> > > > 2.25.1
> > >
> > > Thanks Isaku.
> > > Reviewed-by: Min Xu <min.m.xu@intel.com>
> > >
> > >
> > >
> > > 
> > >
> >
> >



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#90004): https://edk2.groups.io/g/devel/message/90004
Mute This Topic: https://groups.io/mt/91326368/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-