]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/BdsDxe/Capsules.c
Clean up EFI_SPECIFICATION_VERSION and PI_SPECIFICATION_VERSION.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / BdsDxe / Capsules.c
index 904a775493a7b61ad8e4fe21498ec858885ade0e..4e8b9e5c33d040232776e2637198d3eba20458b5 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   BDS routines to handle capsules.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation. <BR>\r
+Copyright (c) 2004 - 2009, Intel Corporation. <BR>\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -13,55 +13,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 **/\r
 #include "Bds.h"\r
 \r
-/**\r
-  This function locks the block \r
-\r
-  @param CpuIo           A instance of EFI_CPU_IO_PROTOCOL. \r
-  @param Base            The base address flash region to be locked.\r
-\r
-**/\r
-VOID\r
-BdsLockFv (\r
-  IN EFI_CPU_IO_PROTOCOL          *CpuIo,\r
-  IN EFI_PHYSICAL_ADDRESS         Base\r
-  )\r
-{\r
-  EFI_FV_BLOCK_MAP_ENTRY      *BlockMap;\r
-  EFI_FIRMWARE_VOLUME_HEADER  *FvHeader;\r
-  EFI_PHYSICAL_ADDRESS        BaseAddress;\r
-  UINT8                       Data;\r
-  UINT32                      BlockLength;\r
-  UINTN                       Index;\r
-\r
-  BaseAddress = Base - 0x400000 + 2;\r
-  FvHeader    = (EFI_FIRMWARE_VOLUME_HEADER *) ((UINTN) (Base));\r
-  BlockMap    = &(FvHeader->BlockMap[0]);\r
-\r
-  while ((BlockMap->NumBlocks != 0) && (BlockMap->Length != 0)) {\r
-    BlockLength = BlockMap->Length;\r
-    for (Index = 0; Index < BlockMap->NumBlocks; Index++) {\r
-      CpuIo->Mem.Read (\r
-                  CpuIo,\r
-                  EfiCpuIoWidthUint8,\r
-                  BaseAddress,\r
-                  1,\r
-                  &Data\r
-                  );\r
-      Data = (UINT8) (Data | 0x3);\r
-      CpuIo->Mem.Write (\r
-                  CpuIo,\r
-                  EfiCpuIoWidthUint8,\r
-                  BaseAddress,\r
-                  1,\r
-                  &Data\r
-                  );\r
-      BaseAddress += BlockLength;\r
-    }\r
-\r
-    BlockMap++;\r
-  }\r
-}\r
-\r
 /**\r
 \r
   This routine is called to see if there are any capsules we need to process.\r
@@ -83,7 +34,8 @@ BdsLockFv (
 \r
 **/\r
 EFI_STATUS\r
-ProcessCapsules (\r
+EFIAPI\r
+BdsProcessCapsules (\r
   EFI_BOOT_MODE BootMode\r
   )\r
 {\r
@@ -100,7 +52,6 @@ ProcessCapsules (
   VOID                        **CapsulePtr;\r
   VOID                        **CapsulePtrCache;\r
   EFI_GUID                    *CapsuleGuidCache; \r
-  CAPSULE_HOB_INFO            *CapsuleHobInfo;\r
 \r
   CapsuleNumber = 0;\r
   CapsuleTotalNumber = 0;\r
@@ -122,9 +73,8 @@ ProcessCapsules (
   // Find all capsule images from hob\r
   //\r
   HobPointer.Raw = GetHobList ();\r
-  while ((HobPointer.Raw = GetNextGuidHob (&gEfiCapsuleVendorGuid, HobPointer.Raw)) != NULL) {\r
+  while ((HobPointer.Raw = GetNextHob (EFI_HOB_TYPE_UEFI_CAPSULE, HobPointer.Raw)) != NULL) {\r
     CapsuleTotalNumber ++;\r
-\r
     HobPointer.Raw = GET_NEXT_HOB (HobPointer);\r
   }\r
   \r
@@ -150,10 +100,8 @@ ProcessCapsules (
   // Find all capsule images from hob\r
   //\r
   HobPointer.Raw = GetHobList ();\r
-  while ((HobPointer.Raw = GetNextGuidHob (&gEfiCapsuleVendorGuid, HobPointer.Raw)) != NULL) {\r
-    CapsuleHobInfo = GET_GUID_HOB_DATA (HobPointer.Guid);\r
-    CapsulePtr [CapsuleNumber++] = (VOID *)(UINTN)(CapsuleHobInfo->BaseAddress);\r
-\r
+  while ((HobPointer.Raw = GetNextHob (EFI_HOB_TYPE_UEFI_CAPSULE, HobPointer.Raw)) != NULL) {\r
+    CapsulePtr [CapsuleNumber++] = (VOID *) (UINTN) HobPointer.Capsule->BaseAddress;\r
     HobPointer.Raw = GET_NEXT_HOB (HobPointer);\r
   }\r
 \r
@@ -255,3 +203,4 @@ ProcessCapsules (
 \r
   return Status;\r
 }\r
+\r