Clean Nt32 FVB driver doesn't produce the undefined FVB extension protocol.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7632 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
		| @@ -28,7 +28,6 @@ Revision History | ||||
| // The protocols, PPI and GUID defintions for this module | ||||
| // | ||||
| #include <Guid/EventGroup.h> | ||||
| #include <Protocol/FvbExtension.h> | ||||
| #include <Protocol/FirmwareVolumeBlock.h> | ||||
| #include <Guid/AlternateFvBlock.h> | ||||
| #include <Protocol/DevicePath.h> | ||||
| @@ -88,9 +87,6 @@ EFI_FW_VOL_BLOCK_DEVICE mFvbDeviceTemplate = { | ||||
|     FvbProtocolWrite, | ||||
|     FvbProtocolEraseBlocks, | ||||
|     NULL | ||||
|   }, | ||||
|   { | ||||
|     FvbExtendProtocolEraseCustomBlockRange | ||||
|   } | ||||
| }; | ||||
|  | ||||
| @@ -608,113 +604,6 @@ Returns: | ||||
|   return EFI_SUCCESS; | ||||
| } | ||||
|  | ||||
| EFI_STATUS | ||||
| FvbEraseCustomBlockRange ( | ||||
|   IN UINTN                                Instance, | ||||
|   IN EFI_LBA                              StartLba, | ||||
|   IN UINTN                                OffsetStartLba, | ||||
|   IN EFI_LBA                              LastLba, | ||||
|   IN UINTN                                OffsetLastLba, | ||||
|   IN ESAL_FWB_GLOBAL                      *Global, | ||||
|   IN BOOLEAN                              Virtual | ||||
|   ) | ||||
| /*++ | ||||
|  | ||||
| Routine Description: | ||||
|   Erases and initializes a specified range of a firmware volume | ||||
|  | ||||
| Arguments: | ||||
|   Instance              - The FV instance to be erased | ||||
|   StartLba              - The starting logical block index to be erased | ||||
|   OffsetStartLba        - Offset into the starting block at which to | ||||
|                           begin erasing | ||||
|   LastLba               - The last logical block index to be erased | ||||
|   OffsetStartLba        - Offset into the last block at which to end erasing | ||||
|   Global                - Pointer to ESAL_FWB_GLOBAL that contains all | ||||
|                           instance data | ||||
|   Virtual               - Whether CPU is in virtual or physical mode | ||||
|  | ||||
| Returns: | ||||
|   EFI_SUCCESS           - The firmware volume was erased successfully | ||||
|   EFI_ACCESS_DENIED     - The firmware volume is in the WriteDisabled state | ||||
|   EFI_DEVICE_ERROR      - The block device is not functioning correctly and | ||||
|                           could not be written. Firmware device may have been | ||||
|                           partially erased | ||||
|   EFI_INVALID_PARAMETER - Instance not found | ||||
|  | ||||
| --*/ | ||||
| { | ||||
|   EFI_LBA Index; | ||||
|   UINTN   LbaSize; | ||||
|   UINTN   ScratchLbaSizeData; | ||||
|   EFI_STATUS Status; | ||||
|  | ||||
|   // | ||||
|   // First LBA | ||||
|   // | ||||
|   Status = FvbGetLbaAddress (Instance, StartLba, NULL, &LbaSize, NULL, Global, Virtual); | ||||
|   if (EFI_ERROR (Status)) { | ||||
|     return Status; | ||||
|   } | ||||
|  | ||||
|   // | ||||
|   // Use the scratch space as the intermediate buffer to transfer data | ||||
|   // Back up the first LBA in scratch space. | ||||
|   // | ||||
|   FvbReadBlock (Instance, StartLba, 0, &LbaSize, Global->FvbScratchSpace[Virtual], Global, Virtual); | ||||
|  | ||||
|   // | ||||
|   // erase now | ||||
|   // | ||||
|   FvbEraseBlock (Instance, StartLba, Global, Virtual); | ||||
|   ScratchLbaSizeData = OffsetStartLba; | ||||
|  | ||||
|   // | ||||
|   // write the data back to the first block | ||||
|   // | ||||
|   if (ScratchLbaSizeData > 0) { | ||||
|     Status = FvbWriteBlock (Instance, StartLba, 0, &ScratchLbaSizeData, Global->FvbScratchSpace[Virtual], Global, Virtual); | ||||
|     if (EFI_ERROR (Status)) { | ||||
|       return Status; | ||||
|     } | ||||
|   } | ||||
|   // | ||||
|   // Middle LBAs | ||||
|   // | ||||
|   if (LastLba > (StartLba + 1)) { | ||||
|     for (Index = (StartLba + 1); Index <= (LastLba - 1); Index++) { | ||||
|       FvbEraseBlock (Instance, Index, Global, Virtual); | ||||
|     } | ||||
|   } | ||||
|   // | ||||
|   // Last LBAs, the same as first LBAs | ||||
|   // | ||||
|   if (LastLba > StartLba) { | ||||
|     Status = FvbGetLbaAddress (Instance, LastLba, NULL, &LbaSize, NULL, Global, Virtual); | ||||
|     if (EFI_ERROR (Status)) { | ||||
|       return Status; | ||||
|     } | ||||
|     FvbReadBlock (Instance, LastLba, 0, &LbaSize, Global->FvbScratchSpace[Virtual], Global, Virtual); | ||||
|     FvbEraseBlock (Instance, LastLba, Global, Virtual); | ||||
|   } | ||||
|  | ||||
|   ScratchLbaSizeData = LbaSize - (OffsetLastLba + 1); | ||||
|    | ||||
|   if (ScratchLbaSizeData > 0) { | ||||
|     Status = FvbWriteBlock ( | ||||
|               Instance, | ||||
|               LastLba, | ||||
|               (OffsetLastLba + 1), | ||||
|               &ScratchLbaSizeData, | ||||
|               Global->FvbScratchSpace[Virtual] + OffsetLastLba + 1, | ||||
|               Global, | ||||
|               Virtual | ||||
|               ); | ||||
|   } | ||||
|  | ||||
|   return Status; | ||||
| } | ||||
|  | ||||
| EFI_STATUS | ||||
| FvbSetVolumeAttributes ( | ||||
|   IN UINTN                                  Instance, | ||||
| @@ -1173,54 +1062,6 @@ Returns: | ||||
|  | ||||
|   return FvbReadBlock (FvbDevice->Instance, Lba, Offset, NumBytes, Buffer, mFvbModuleGlobal, EfiGoneVirtual ()); | ||||
| } | ||||
| // | ||||
| // FVB Extension Protocols | ||||
| // | ||||
| EFI_STATUS | ||||
| EFIAPI | ||||
| FvbExtendProtocolEraseCustomBlockRange ( | ||||
|   IN EFI_FVB_EXTENSION_PROTOCOL           *This, | ||||
|   IN EFI_LBA                              StartLba, | ||||
|   IN UINTN                                OffsetStartLba, | ||||
|   IN EFI_LBA                              LastLba, | ||||
|   IN UINTN                                OffsetLastLba | ||||
|   ) | ||||
| /*++ | ||||
|  | ||||
| Routine Description: | ||||
|   Erases and initializes a specified range of a firmware volume | ||||
|  | ||||
| Arguments: | ||||
|   This                  - Calling context | ||||
|   StartLba              - The starting logical block index to be erased | ||||
|   OffsetStartLba        - Offset into the starting block at which to | ||||
|                           begin erasing | ||||
|   LastLba               - The last logical block index to be erased | ||||
|   OffsetStartLba        - Offset into the last block at which to end erasing | ||||
|  | ||||
| Returns: | ||||
|   EFI_SUCCESS           - The firmware volume was erased successfully | ||||
|   EFI_ACCESS_DENIED     - The firmware volume is in the WriteDisabled state | ||||
|   EFI_DEVICE_ERROR      - The block device is not functioning correctly and | ||||
|                           could not be written. Firmware device may have been | ||||
|                           partially erased | ||||
|  | ||||
| --*/ | ||||
| { | ||||
|   EFI_FW_VOL_BLOCK_DEVICE *FvbDevice; | ||||
|  | ||||
|   FvbDevice = FVB_EXTEND_DEVICE_FROM_THIS (This); | ||||
|  | ||||
|   return FvbEraseCustomBlockRange ( | ||||
|           FvbDevice->Instance, | ||||
|           StartLba, | ||||
|           OffsetStartLba, | ||||
|           LastLba, | ||||
|           OffsetLastLba, | ||||
|           mFvbModuleGlobal, | ||||
|           EfiGoneVirtual () | ||||
|           ); | ||||
| } | ||||
|  | ||||
| EFI_STATUS | ||||
| ValidateFvHeader ( | ||||
| @@ -1510,13 +1351,9 @@ Returns: | ||||
|       // | ||||
|       ASSERT (FALSE); | ||||
|     } | ||||
|     // | ||||
|     // Install FVB Extension Protocol on the same handle | ||||
|     // | ||||
|  | ||||
|     Status = gBS->InstallMultipleProtocolInterfaces ( | ||||
|                     &FwbHandle, | ||||
|                     &gEfiFvbExtensionProtocolGuid, | ||||
|                     &FvbDevice->FvbExtension, | ||||
|                     &gEfiAlternateFvBlockGuid, | ||||
|                     NULL, | ||||
|                     NULL | ||||
| @@ -1533,13 +1370,5 @@ Returns: | ||||
|     FvHob.Raw = GET_NEXT_HOB (FvHob); | ||||
|   } | ||||
|  | ||||
|   // | ||||
|   // Allocate for scratch space, an intermediate buffer for FVB extention | ||||
|   // | ||||
|   mFvbModuleGlobal->FvbScratchSpace[FVB_PHYSICAL] = AllocateRuntimePool (MaxLbaSize); | ||||
|   ASSERT (mFvbModuleGlobal->FvbScratchSpace[FVB_PHYSICAL] != NULL); | ||||
|  | ||||
|   mFvbModuleGlobal->FvbScratchSpace[FVB_VIRTUAL] = mFvbModuleGlobal->FvbScratchSpace[FVB_PHYSICAL]; | ||||
|  | ||||
|   return EFI_SUCCESS; | ||||
| } | ||||
|   | ||||
| @@ -31,7 +31,6 @@ Abstract: | ||||
| #include <Guid/EventGroup.h> | ||||
| #include <Guid/FirmwareFileSystem2.h> | ||||
| #include <Guid/SystemNvDataGuid.h> | ||||
| #include <Protocol/FvbExtension.h> | ||||
| #include <Protocol/FirmwareVolumeBlock.h> | ||||
| #include <Guid/AlternateFvBlock.h> | ||||
| #include <Protocol/DevicePath.h> | ||||
|   | ||||
| @@ -63,7 +63,6 @@ | ||||
|   gEfiAlternateFvBlockGuid                      # ALWAYS_CONSUME | ||||
|  | ||||
| [Protocols] | ||||
|   gEfiFvbExtensionProtocolGuid                  # PROTOCOL ALWAYS_PRODUCED | ||||
|   gEfiFirmwareVolumeBlockProtocolGuid           # PROTOCOL ALWAYS_PRODUCED | ||||
|   gEfiDevicePathProtocolGuid                    # PROTOCOL SOMETIMES_PRODUCED | ||||
|  | ||||
| @@ -86,3 +85,4 @@ | ||||
|  | ||||
| [depex] | ||||
|   TRUE | ||||
|    | ||||
| @@ -58,7 +58,6 @@ typedef struct { | ||||
|   FV_DEVICE_PATH                      DevicePath; | ||||
|   UINTN                               Instance; | ||||
|   EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL  FwVolBlockInstance; | ||||
|   EFI_FVB_EXTENSION_PROTOCOL          FvbExtension; | ||||
| } EFI_FW_VOL_BLOCK_DEVICE; | ||||
|  | ||||
| EFI_STATUS | ||||
| @@ -207,14 +206,4 @@ FvbProtocolEraseBlocks ( | ||||
|   ... | ||||
|   ); | ||||
|  | ||||
| EFI_STATUS | ||||
| EFIAPI | ||||
| FvbExtendProtocolEraseCustomBlockRange ( | ||||
|   IN EFI_FVB_EXTENSION_PROTOCOL           *This, | ||||
|   IN EFI_LBA                              StartLba, | ||||
|   IN UINTN                                OffsetStartLba, | ||||
|   IN EFI_LBA                              LastLba, | ||||
|   IN UINTN                                OffsetLastLba | ||||
|   ); | ||||
|  | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user