UefiCpuPkg/Library/MpInitLib/MpLib.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
> v2:
> Roll back changes (just white spaces) caused by misoperation in git
This issue is introduced by a patch at
f32bfe6d061420a15bac6083063d227c567e6388
The above patch miss the case of 64-bit PEI, which will link
X64/MpFuncs.nasm instead of Ia32/MpFuncs.nasm. For X64/MpFuncs.nasm,
ExchangeInfo->ModeHighMemory should be always initialized no matter
if separate wakeup buffer is allocated or not. Ia32/MpFuncs.nasm will
not need ModeHighMemory during AP init. So the changes made in this
patch should not affect the functionality of it.
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
---
UefiCpuPkg/Library/MpInitLib/MpLib.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
index 42011d6231..0b7073fd02 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
@@ -834,14 +834,15 @@ FillExchangeInfoData (
);
ExchangeInfo->ModeTransitionMemory = (UINT32)CpuMpData->WakeupBufferHigh;
- ExchangeInfo->ModeHighMemory = (UINT32)CpuMpData->WakeupBufferHigh +
- (UINT32)ExchangeInfo->ModeOffset -
- (UINT32)CpuMpData->AddressMap.ModeTransitionOffset;
- ExchangeInfo->ModeHighSegment = (UINT16)ExchangeInfo->CodeSegment;
} else {
ExchangeInfo->ModeTransitionMemory = (UINT32)
(ExchangeInfo->BufferStart + CpuMpData->AddressMap.ModeTransitionOffset);
}
+
+ ExchangeInfo->ModeHighMemory = ExchangeInfo->ModeTransitionMemory +
+ (UINT32)ExchangeInfo->ModeOffset -
+ (UINT32)CpuMpData->AddressMap.ModeTransitionOffset;
+ ExchangeInfo->ModeHighSegment = (UINT16)ExchangeInfo->CodeSegment;
}
/**
--
2.15.1.windows.2
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
On 1/25/2018 3:42 PM, Jian J Wang wrote: >> v2: >> Roll back changes (just white spaces) caused by misoperation in git > > This issue is introduced by a patch at > > f32bfe6d061420a15bac6083063d227c567e6388 > > The above patch miss the case of 64-bit PEI, which will link > X64/MpFuncs.nasm instead of Ia32/MpFuncs.nasm. For X64/MpFuncs.nasm, > ExchangeInfo->ModeHighMemory should be always initialized no matter > if separate wakeup buffer is allocated or not. Ia32/MpFuncs.nasm will > not need ModeHighMemory during AP init. So the changes made in this > patch should not affect the functionality of it. > > Cc: Ruiyu Ni <ruiyu.ni@intel.com> > Cc: Eric Dong <eric.dong@intel.com> > Cc: Laszlo Ersek <lersek@redhat.com> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Jian J Wang <jian.j.wang@intel.com> > --- > UefiCpuPkg/Library/MpInitLib/MpLib.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c > index 42011d6231..0b7073fd02 100644 > --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c > +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c > @@ -834,14 +834,15 @@ FillExchangeInfoData ( > ); > > ExchangeInfo->ModeTransitionMemory = (UINT32)CpuMpData->WakeupBufferHigh; > - ExchangeInfo->ModeHighMemory = (UINT32)CpuMpData->WakeupBufferHigh + > - (UINT32)ExchangeInfo->ModeOffset - > - (UINT32)CpuMpData->AddressMap.ModeTransitionOffset; > - ExchangeInfo->ModeHighSegment = (UINT16)ExchangeInfo->CodeSegment; > } else { > ExchangeInfo->ModeTransitionMemory = (UINT32) > (ExchangeInfo->BufferStart + CpuMpData->AddressMap.ModeTransitionOffset); > } > + > + ExchangeInfo->ModeHighMemory = ExchangeInfo->ModeTransitionMemory + > + (UINT32)ExchangeInfo->ModeOffset - > + (UINT32)CpuMpData->AddressMap.ModeTransitionOffset; > + ExchangeInfo->ModeHighSegment = (UINT16)ExchangeInfo->CodeSegment; > } > > /** > Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> -- Thanks, Ray _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
© 2016 - 2024 Red Hat, Inc.