Reviewed-by: Eric Dong <eric.d...@intel.com>

-----Original Message-----
From: Wu, Hao A <hao.a...@intel.com> 
Sent: Thursday, February 6, 2020 1:24 PM
To: devel@edk2.groups.io
Cc: Wu, Hao A <hao.a...@intel.com>; Kubacki, Michael A 
<michael.a.kuba...@intel.com>; Kinney, Michael D <michael.d.kin...@intel.com>; 
Dong, Eric <eric.d...@intel.com>; Ni, Ray <ray...@intel.com>; Laszlo Ersek 
<ler...@redhat.com>
Subject: [PATCH v1 1/2] Revert UefiCpuPkg/MpInitLib: Relocate microcode patch 
fields in CPU_MP_DATA

This reverts commit 88bd06616617ef2569f093f7b51893c11ad78e26.

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=2465

Commit 88bd0661661 relocates the 'MicrocodePatchAddress' and 
'MicrocodePatchRegionSize' fields in structure CPU_MP_DATA to ensure that they 
can be properly passed between different architectures.

However, such change is not backward compatible with the scenario like 
pre-existing binaries such as FSP. These binaries are built when the code base 
has a different version of the CPU_MP_DATA structure definition. This may cause 
issues when accessing the 'MicrocodePatchAddress' and 
'MicrocodePatchRegionSize' fields, since their offsets are different (between 
PEI phase in the FSP binaries and DXE phase in current code implementation).

Cc: Michael Kubacki <michael.a.kuba...@intel.com>
Cc: Michael D Kinney <michael.d.kin...@intel.com>
Cc: Eric Dong <eric.d...@intel.com>
Cc: Ray Ni <ray...@intel.com>
Cc: Laszlo Ersek <ler...@redhat.com>
Signed-off-by: Hao A Wu <hao.a...@intel.com>
---
 UefiCpuPkg/Library/MpInitLib/MpLib.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.h 
b/UefiCpuPkg/Library/MpInitLib/MpLib.h
index 7c62d75acc..d7e20f0b74 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.h
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.h
@@ -219,8 +219,6 @@ struct _CPU_MP_DATA {
   UINT64                         CpuInfoInHob;
   UINT32                         CpuCount;
   UINT32                         BspNumber;
-  UINT64                         MicrocodePatchAddress;
-  UINT64                         MicrocodePatchRegionSize;
   //
   // The above fields data will be passed from PEI to DXE
   // Please make sure the fields offset same in the different @@ -264,6 +262,8 
@@ struct _CPU_MP_DATA {
   UINT8                          Vector;
   BOOLEAN                        PeriodicMode;
   BOOLEAN                        TimerInterruptState;
+  UINT64                         MicrocodePatchAddress;
+  UINT64                         MicrocodePatchRegionSize;
 
   //
   // Whether need to use Init-Sipi-Sipi to wake up the APs.
--
2.12.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#53982): https://edk2.groups.io/g/devel/message/53982
Mute This Topic: https://groups.io/mt/71015995/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to