Reviewed-by: Jiewen Yao <jiewen....@intel.com> > -----Original Message----- > From: Sun, CepingX <cepingx....@intel.com> > Sent: Thursday, November 2, 2023 5:10 PM > To: devel@edk2.groups.io > Cc: Sun, CepingX <cepingx....@intel.com>; Gao, Liming > <gaolim...@byosoft.com.cn>; Kinney, Michael D <michael.d.kin...@intel.com>; > Aktas, Erdem <erdemak...@google.com>; James Bottomley > <j...@linux.ibm.com>; Yao, Jiewen <jiewen....@intel.com>; Xu, Min M > <min.m...@intel.com>; Tom Lendacky <thomas.lenda...@amd.com>; Michael > Roth <michael.r...@amd.com>; Gerd Hoffmann <kra...@redhat.com> > Subject: [PATCH V2 1/2] MdePkg/BaseLib: Update TdVmcall to always output the > value in R11 > > From: Ceping Sun <cepingx....@intel.com> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4572 > > According to section 3.2 of the [GHCI] spec, if the return status > of MapGPA is "TDG.VP.VMCALL_RETRY", TD must retry this operation > for the pages in the region starting at the GPA specified in R11. > > Currently, TDVF has not handled the retry results and always clears > the R11 on unsuccessful return status. For this, the TdVmcall needs > to output the value of R11 on unsuccessful return status to handle > the retry results of MapGPA. > > Reference: > [GHCI]: TDX Guest-Host-Communication Interface v1.0 > https://cdrdv2.intel.com/v1/dl/getContent/726790 > > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Erdem Aktas <erdemak...@google.com> > Cc: James Bottomley <j...@linux.ibm.com> > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Min Xu <min.m...@intel.com> > Cc: Tom Lendacky <thomas.lenda...@amd.com> > Cc: Michael Roth <michael.r...@amd.com> > Cc: Gerd Hoffmann <kra...@redhat.com> > Signed-off-by: Ceping Sun <cepingx....@intel.com> > --- > MdePkg/Library/BaseLib/X64/TdVmcall.nasm | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/MdePkg/Library/BaseLib/X64/TdVmcall.nasm > b/MdePkg/Library/BaseLib/X64/TdVmcall.nasm > index 5ecc10b17193..8dd9bfcbfa14 100644 > --- a/MdePkg/Library/BaseLib/X64/TdVmcall.nasm > +++ b/MdePkg/Library/BaseLib/X64/TdVmcall.nasm > @@ -133,9 +133,7 @@ ASM_PFX(TdVmCall): > test r9, r9 > jz .no_return_data > > - ; On success, propagate TDVMCALL output value to output param > - test rax, rax > - jnz .no_return_data > + ; Propagate TDVMCALL output value to output param > mov [r9], r11 > .no_return_data: > tdcall_regs_postamble > -- > 2.34.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110894): https://edk2.groups.io/g/devel/message/110894 Mute This Topic: https://groups.io/mt/102337975/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-