BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1462
Original logic is that checking the CapsuleUpdate variable
and do the EnterS3WithImmediateWake if the system require a
capsule update. The EnterS3WithImmediateWake is usually
implemented in Platform ResetSystemLib instance and it may
do some operation for capsule update. For now, thess preparations
of capsule are platform reset notify functions' duty. Most
platforms need flush cache to memory before warm reset during
capsule update and this operation is added to capsule flow.
So it is safe to remove it and do not affect the capsule update
function.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
-/**\r
- Put the system into S3 power state.\r
-**/\r
-VOID\r
-DoS3 (\r
- VOID\r
- )\r
-{\r
- EnterS3WithImmediateWake ();\r
-\r
- //\r
- // Should not return\r
- //\r
- CpuDeadLoop ();\r
-}\r
-\r
/**\r
Resets the entire platform.\r
\r
/**\r
Resets the entire platform.\r
\r
IN VOID *ResetData OPTIONAL\r
)\r
{\r
IN VOID *ResetData OPTIONAL\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN Size;\r
- UINTN CapsuleDataPtr;\r
LIST_ENTRY *Link;\r
RESET_NOTIFY_ENTRY *Entry;\r
\r
LIST_ENTRY *Link;\r
RESET_NOTIFY_ENTRY *Entry;\r
\r
switch (ResetType) {\r
case EfiResetWarm:\r
\r
switch (ResetType) {\r
case EfiResetWarm:\r
\r
- //\r
- //Check if there are pending capsules to process\r
- //\r
- Size = sizeof (CapsuleDataPtr);\r
- Status = EfiGetVariable (\r
- EFI_CAPSULE_VARIABLE_NAME,\r
- &gEfiCapsuleVendorGuid,\r
- NULL,\r
- &Size,\r
- (VOID *) &CapsuleDataPtr\r
- );\r
-\r
- if (Status == EFI_SUCCESS) {\r
- //\r
- //Process capsules across a system reset.\r
- //\r
- DoS3();\r
- }\r
-\r
ResetWarm ();\r
break;\r
\r
ResetWarm ();\r
break;\r
\r