//\r
// The times of calling UpdateCapsule ()\r
//\r
-UINTN mTimes = 0;\r
+UINTN mTimes = 0;\r
\r
-UINT32 mMaxSizePopulateCapsule = 0;\r
-UINT32 mMaxSizeNonPopulateCapsule = 0;\r
+UINT32 mMaxSizePopulateCapsule = 0;\r
+UINT32 mMaxSizeNonPopulateCapsule = 0;\r
\r
/**\r
Passes capsules to the firmware with both virtual and physical mapping. Depending on the intended\r
EFI_STATUS\r
EFIAPI\r
UpdateCapsule (\r
- IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,\r
- IN UINTN CapsuleCount,\r
- IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL\r
+ IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,\r
+ IN UINTN CapsuleCount,\r
+ IN EFI_PHYSICAL_ADDRESS ScatterGatherList OPTIONAL\r
)\r
{\r
- UINTN ArrayNumber;\r
- EFI_STATUS Status;\r
- EFI_CAPSULE_HEADER *CapsuleHeader;\r
- BOOLEAN NeedReset;\r
- BOOLEAN InitiateReset;\r
- CHAR16 CapsuleVarName[30];\r
- CHAR16 *TempVarName;\r
+ UINTN ArrayNumber;\r
+ EFI_STATUS Status;\r
+ EFI_CAPSULE_HEADER *CapsuleHeader;\r
+ BOOLEAN NeedReset;\r
+ BOOLEAN InitiateReset;\r
+ CHAR16 CapsuleVarName[30];\r
+ CHAR16 *TempVarName;\r
\r
//\r
// Check if platform support Capsule In RAM or not.\r
// Platform could choose to drop CapsulePei/CapsuleX64 and do not support Capsule In RAM.\r
//\r
- if (!PcdGetBool(PcdCapsuleInRamSupport)) {\r
+ if (!PcdGetBool (PcdCapsuleInRamSupport)) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
if ((CapsuleHeader->Flags & (CAPSULE_FLAGS_PERSIST_ACROSS_RESET | CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE)) == CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
//\r
// A capsule which has the CAPSULE_FLAGS_INITIATE_RESET flag must have\r
// CAPSULE_FLAGS_PERSIST_ACROSS_RESET set in its header as well.\r
//\r
// Check FMP capsule flag\r
//\r
- if (CompareGuid(&CapsuleHeader->CapsuleGuid, &gEfiFmpCapsuleGuid)\r
- && (CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0 ) {\r
- return EFI_INVALID_PARAMETER;\r
+ if ( CompareGuid (&CapsuleHeader->CapsuleGuid, &gEfiFmpCapsuleGuid)\r
+ && ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0))\r
+ {\r
+ return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
//\r
if ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) == 0) {\r
Status = SupportCapsuleImage (CapsuleHeader);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
}\r
// Walk through all capsules, record whether there is a capsule needs reset\r
// or initiate reset. And then process capsules which has no reset flag directly.\r
//\r
- for (ArrayNumber = 0; ArrayNumber < CapsuleCount ; ArrayNumber++) {\r
+ for (ArrayNumber = 0; ArrayNumber < CapsuleCount; ArrayNumber++) {\r
CapsuleHeader = CapsuleHeaderArray[ArrayNumber];\r
//\r
// Here should be in the boot-time for non-reset capsule image\r
if (EfiAtRuntime () && !FeaturePcdGet (PcdSupportProcessCapsuleAtRuntime)) {\r
Status = EFI_OUT_OF_RESOURCES;\r
} else {\r
- Status = ProcessCapsuleImage(CapsuleHeader);\r
+ Status = ProcessCapsuleImage (CapsuleHeader);\r
}\r
- if (EFI_ERROR(Status)) {\r
+\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
} else {\r
// ScatterGatherList is only referenced if the capsules are defined to persist across\r
// system reset.\r
//\r
- if (ScatterGatherList == (EFI_PHYSICAL_ADDRESS) (UINTN) NULL) {\r
+ if (ScatterGatherList == (EFI_PHYSICAL_ADDRESS)(UINTN)NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
// Construct variable name CapsuleUpdateData, CapsuleUpdateData1, CapsuleUpdateData2...\r
// if user calls UpdateCapsule multiple times.\r
//\r
- StrCpyS (CapsuleVarName, sizeof(CapsuleVarName)/sizeof(CHAR16), EFI_CAPSULE_VARIABLE_NAME);\r
+ StrCpyS (CapsuleVarName, sizeof (CapsuleVarName)/sizeof (CHAR16), EFI_CAPSULE_VARIABLE_NAME);\r
TempVarName = CapsuleVarName + StrLen (CapsuleVarName);\r
if (mTimes > 0) {\r
UnicodeValueToStringS (\r
&gEfiCapsuleVendorGuid,\r
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
sizeof (UINTN),\r
- (VOID *) &ScatterGatherList\r
+ (VOID *)&ScatterGatherList\r
);\r
if (!EFI_ERROR (Status)) {\r
- //\r
- // Variable has been set successfully, increase variable index.\r
- //\r
- mTimes++;\r
- if(InitiateReset) {\r
- //\r
- // Firmware that encounters a capsule which has the CAPSULE_FLAGS_INITIATE_RESET Flag set in its header\r
- // will initiate a reset of the platform which is compatible with the passed-in capsule request and will\r
- // not return back to the caller.\r
- //\r
- EfiResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);\r
- }\r
+ //\r
+ // Variable has been set successfully, increase variable index.\r
+ //\r
+ mTimes++;\r
+ if (InitiateReset) {\r
+ //\r
+ // Firmware that encounters a capsule which has the CAPSULE_FLAGS_INITIATE_RESET Flag set in its header\r
+ // will initiate a reset of the platform which is compatible with the passed-in capsule request and will\r
+ // not return back to the caller.\r
+ //\r
+ EfiResetSystem (EfiResetWarm, EFI_SUCCESS, 0, NULL);\r
+ }\r
}\r
+\r
return Status;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
QueryCapsuleCapabilities (\r
- IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,\r
- IN UINTN CapsuleCount,\r
- OUT UINT64 *MaxiumCapsuleSize,\r
- OUT EFI_RESET_TYPE *ResetType\r
+ IN EFI_CAPSULE_HEADER **CapsuleHeaderArray,\r
+ IN UINTN CapsuleCount,\r
+ OUT UINT64 *MaxiumCapsuleSize,\r
+ OUT EFI_RESET_TYPE *ResetType\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN ArrayNumber;\r
- EFI_CAPSULE_HEADER *CapsuleHeader;\r
- BOOLEAN NeedReset;\r
+ EFI_STATUS Status;\r
+ UINTN ArrayNumber;\r
+ EFI_CAPSULE_HEADER *CapsuleHeader;\r
+ BOOLEAN NeedReset;\r
\r
//\r
// Capsule Count can't be less than one.\r
//\r
// Check whether input parameter is valid\r
//\r
- if ((MaxiumCapsuleSize == NULL) ||(ResetType == NULL)) {\r
+ if ((MaxiumCapsuleSize == NULL) || (ResetType == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
if ((CapsuleHeader->Flags & (CAPSULE_FLAGS_PERSIST_ACROSS_RESET | CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE)) == CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
//\r
// A capsule which has the CAPSULE_FLAGS_INITIATE_RESET flag must have\r
// CAPSULE_FLAGS_PERSIST_ACROSS_RESET set in its header as well.\r
//\r
// Check FMP capsule flag\r
//\r
- if (CompareGuid(&CapsuleHeader->CapsuleGuid, &gEfiFmpCapsuleGuid)\r
- && (CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0 ) {\r
- return EFI_INVALID_PARAMETER;\r
+ if ( CompareGuid (&CapsuleHeader->CapsuleGuid, &gEfiFmpCapsuleGuid)\r
+ && ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) != 0))\r
+ {\r
+ return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
//\r
if ((CapsuleHeader->Flags & CAPSULE_FLAGS_POPULATE_SYSTEM_TABLE) == 0) {\r
Status = SupportCapsuleImage (CapsuleHeader);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
}\r
//\r
// Find out whether there is any capsule defined to persist across system reset.\r
//\r
- for (ArrayNumber = 0; ArrayNumber < CapsuleCount ; ArrayNumber++) {\r
+ for (ArrayNumber = 0; ArrayNumber < CapsuleCount; ArrayNumber++) {\r
CapsuleHeader = CapsuleHeaderArray[ArrayNumber];\r
if ((CapsuleHeader->Flags & CAPSULE_FLAGS_PERSIST_ACROSS_RESET) != 0) {\r
NeedReset = TRUE;\r
\r
if (NeedReset) {\r
//\r
- //Check if the platform supports update capsule across a system reset\r
+ // Check if the platform supports update capsule across a system reset\r
//\r
if (!IsPersistAcrossResetCapsuleSupported ()) {\r
return EFI_UNSUPPORTED;\r
}\r
- *ResetType = EfiResetWarm;\r
- *MaxiumCapsuleSize = (UINT64) mMaxSizePopulateCapsule;\r
+\r
+ *ResetType = EfiResetWarm;\r
+ *MaxiumCapsuleSize = (UINT64)mMaxSizePopulateCapsule;\r
} else {\r
//\r
// For non-reset capsule image.\r
//\r
- *ResetType = EfiResetCold;\r
- *MaxiumCapsuleSize = (UINT64) mMaxSizeNonPopulateCapsule;\r
+ *ResetType = EfiResetCold;\r
+ *MaxiumCapsuleSize = (UINT64)mMaxSizeNonPopulateCapsule;\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
\r
This code installs UEFI capsule runtime service.\r
EFI_STATUS\r
EFIAPI\r
CapsuleServiceInitialize (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
EFI_STATUS Status;\r
\r
- mMaxSizePopulateCapsule = PcdGet32(PcdMaxSizePopulateCapsule);\r
- mMaxSizeNonPopulateCapsule = PcdGet32(PcdMaxSizeNonPopulateCapsule);\r
+ mMaxSizePopulateCapsule = PcdGet32 (PcdMaxSizePopulateCapsule);\r
+ mMaxSizeNonPopulateCapsule = PcdGet32 (PcdMaxSizeNonPopulateCapsule);\r
\r
//\r
// When PEI phase is IA32, DXE phase is X64, it is possible that capsule data are\r
//\r
// Install capsule runtime services into UEFI runtime service tables.\r
//\r
- gRT->UpdateCapsule = UpdateCapsule;\r
- gRT->QueryCapsuleCapabilities = QueryCapsuleCapabilities;\r
+ gRT->UpdateCapsule = UpdateCapsule;\r
+ gRT->QueryCapsuleCapabilities = QueryCapsuleCapabilities;\r
\r
//\r
// Install the Capsule Architectural Protocol on a new handle\r