Fix variable set but not used errors detected by GCC 4.8. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
		
			
				
	
	
		
			166 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| Implementation of Helper routines for PEI enviroment.
 | |
| 
 | |
| Copyright (c) 2013-2016 Intel Corporation.
 | |
| 
 | |
| This program and the accompanying materials
 | |
| are licensed and made available under the terms and conditions of the BSD License
 | |
| which accompanies this distribution.  The full text of the license may be found at
 | |
| http://opensource.org/licenses/bsd-license.php
 | |
| 
 | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include <PiPei.h>
 | |
| 
 | |
| #include <Library/PeiServicesTablePointerLib.h>
 | |
| #include <Library/PeiServicesLib.h>
 | |
| #include <Library/I2cLib.h>
 | |
| 
 | |
| #include "CommonHeader.h"
 | |
| 
 | |
| //
 | |
| // Routines defined in other source modules of this component.
 | |
| //
 | |
| 
 | |
| //
 | |
| // Routines local to this source module.
 | |
| //
 | |
| 
 | |
| //
 | |
| // Routines exported by this source module.
 | |
| //
 | |
| 
 | |
| /**
 | |
|   Find pointer to RAW data in Firmware volume file.
 | |
| 
 | |
|   @param   FvNameGuid       Firmware volume to search. If == NULL search all.
 | |
|   @param   FileNameGuid     Firmware volume file to search for.
 | |
|   @param   SectionData      Pointer to RAW data section of found file.
 | |
|   @param   SectionDataSize  Pointer to UNITN to get size of RAW data.
 | |
| 
 | |
|   @retval  EFI_SUCCESS            Raw Data found.
 | |
|   @retval  EFI_INVALID_PARAMETER  FileNameGuid == NULL.
 | |
|   @retval  EFI_NOT_FOUND          Firmware volume file not found.
 | |
|   @retval  EFI_UNSUPPORTED        Unsupported in current enviroment (PEI or DXE).
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| PlatformFindFvFileRawDataSection (
 | |
|   IN CONST EFI_GUID                 *FvNameGuid OPTIONAL,
 | |
|   IN CONST EFI_GUID                 *FileNameGuid,
 | |
|   OUT VOID                          **SectionData,
 | |
|   OUT UINTN                         *SectionDataSize
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS                        Status;
 | |
|   UINTN                             Instance;
 | |
|   EFI_PEI_FV_HANDLE                 VolumeHandle;
 | |
|   EFI_PEI_FILE_HANDLE               FileHandle;
 | |
|   EFI_SECTION_TYPE                  SearchType;
 | |
|   EFI_FV_INFO                       VolumeInfo;
 | |
|   EFI_FV_FILE_INFO                  FileInfo;
 | |
| 
 | |
|   if (FileNameGuid == NULL || SectionData == NULL || SectionDataSize == NULL) {
 | |
|     return EFI_INVALID_PARAMETER;
 | |
|   }
 | |
|   *SectionData = NULL;
 | |
|   *SectionDataSize = 0;
 | |
| 
 | |
|   SearchType = EFI_SECTION_RAW;
 | |
|   for (Instance = 0; !EFI_ERROR((PeiServicesFfsFindNextVolume (Instance, &VolumeHandle))); Instance++) {
 | |
|     if (FvNameGuid != NULL) {
 | |
|       Status = PeiServicesFfsGetVolumeInfo (VolumeHandle, &VolumeInfo);
 | |
|       if (EFI_ERROR (Status)) {
 | |
|         continue;
 | |
|       }
 | |
|       if (!CompareGuid (FvNameGuid, &VolumeInfo.FvName)) {
 | |
|         continue;
 | |
|       }
 | |
|     }
 | |
|     Status = PeiServicesFfsFindFileByName (FileNameGuid, VolumeHandle, &FileHandle);
 | |
|     if (!EFI_ERROR (Status)) {
 | |
|       Status = PeiServicesFfsGetFileInfo (FileHandle, &FileInfo);
 | |
|       if (EFI_ERROR (Status)) {
 | |
|         continue;
 | |
|       }
 | |
|       if (IS_SECTION2(FileInfo.Buffer)) {
 | |
|         *SectionDataSize = SECTION2_SIZE(FileInfo.Buffer) - sizeof(EFI_COMMON_SECTION_HEADER2);
 | |
|       } else {
 | |
|         *SectionDataSize = SECTION_SIZE(FileInfo.Buffer) - sizeof(EFI_COMMON_SECTION_HEADER);
 | |
|       }
 | |
|       Status = PeiServicesFfsFindSectionData (SearchType, FileHandle, SectionData);
 | |
|       if (!EFI_ERROR (Status)) {
 | |
|         return Status;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   return EFI_NOT_FOUND;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   Find free spi protect register and write to it to protect a flash region.
 | |
| 
 | |
|   @param   DirectValue      Value to directly write to register.
 | |
|                             if DirectValue == 0 the use Base & Length below.
 | |
|   @param   BaseAddress      Base address of region in Flash Memory Map.
 | |
|   @param   Length           Length of region to protect.
 | |
| 
 | |
|   @retval  EFI_SUCCESS      Free spi protect register found & written.
 | |
|   @retval  EFI_NOT_FOUND    Free Spi protect register not found.
 | |
|   @retval  EFI_DEVICE_ERROR Unable to write to spi protect register.
 | |
| **/
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| PlatformWriteFirstFreeSpiProtect (
 | |
|   IN CONST UINT32                         DirectValue,
 | |
|   IN CONST UINT32                         BaseAddress,
 | |
|   IN CONST UINT32                         Length
 | |
|   )
 | |
| {
 | |
|   return WriteFirstFreeSpiProtect (
 | |
|            QNC_RCRB_BASE,
 | |
|            DirectValue,
 | |
|            BaseAddress,
 | |
|            Length,
 | |
|            NULL
 | |
|            );
 | |
| }
 | |
| 
 | |
| /** Check if System booted with recovery Boot Stage1 image.
 | |
| 
 | |
|   @retval  TRUE    If system booted with recovery Boot Stage1 image.
 | |
|   @retval  FALSE   If system booted with normal stage1 image.
 | |
| 
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| PlatformIsBootWithRecoveryStage1 (
 | |
|   VOID
 | |
|   )
 | |
| {
 | |
|   BOOLEAN                           IsRecoveryBoot;
 | |
|   QUARK_EDKII_STAGE1_HEADER         *Edk2ImageHeader;
 | |
| 
 | |
|   Edk2ImageHeader = (QUARK_EDKII_STAGE1_HEADER *) PcdGet32 (PcdEsramStage1Base);
 | |
|   switch ((UINT8)Edk2ImageHeader->ImageIndex & QUARK_STAGE1_IMAGE_TYPE_MASK) {
 | |
|   case QUARK_STAGE1_RECOVERY_IMAGE_TYPE:
 | |
|     //
 | |
|     // Recovery Boot
 | |
|     //
 | |
|     IsRecoveryBoot = TRUE;
 | |
|     break;
 | |
|   default:
 | |
|     //
 | |
|     // Normal Boot
 | |
|     //
 | |
|     IsRecoveryBoot = FALSE;
 | |
|     break;
 | |
|   }
 | |
| 
 | |
|   return IsRecoveryBoot;
 | |
| }
 |