REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the UefiPayloadPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			161 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Flash Device Library based on SPI Flash library.
 | 
						|
 | 
						|
Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved. <BR>
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <PiDxe.h>
 | 
						|
#include <Library/BaseMemoryLib.h>
 | 
						|
#include <Library/DebugLib.h>
 | 
						|
#include <Library/SpiFlashLib.h>
 | 
						|
 | 
						|
/**
 | 
						|
  Initialize spi flash device.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS              The tested spi flash device is supported.
 | 
						|
  @retval EFI_UNSUPPORTED          The tested spi flash device is not supported.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
LibFvbFlashDeviceInit (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  return SpiConstructor ();
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Read NumBytes bytes of data from the address specified by
 | 
						|
  PAddress into Buffer.
 | 
						|
 | 
						|
  @param[in]      PAddress      The starting physical address of the read.
 | 
						|
  @param[in,out]  NumBytes      On input, the number of bytes to read. On output, the number
 | 
						|
                                of bytes actually read.
 | 
						|
  @param[out]     Buffer        The destination data buffer for the read.
 | 
						|
 | 
						|
  @retval         EFI_SUCCESS.      Opertion is successful.
 | 
						|
  @retval         EFI_DEVICE_ERROR  If there is any device errors.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
LibFvbFlashDeviceRead (
 | 
						|
  IN      UINTN  PAddress,
 | 
						|
  IN  OUT UINTN  *NumBytes,
 | 
						|
  OUT UINT8      *Buffer
 | 
						|
  )
 | 
						|
{
 | 
						|
  EFI_STATUS  Status;
 | 
						|
  UINT32      ByteCount;
 | 
						|
  UINT32      RgnSize;
 | 
						|
  UINT32      AddrOffset;
 | 
						|
 | 
						|
  Status = SpiGetRegionAddress (FlashRegionBios, NULL, &RgnSize);
 | 
						|
  if (EFI_ERROR (Status)) {
 | 
						|
    return Status;
 | 
						|
  }
 | 
						|
 | 
						|
  // BIOS region offset can be calculated by (PAddress - (0x100000000 - RgnSize))
 | 
						|
  // which equal (PAddress + RgnSize) here.
 | 
						|
  AddrOffset = (UINT32)((UINT32)PAddress + RgnSize);
 | 
						|
  ByteCount  = (UINT32)*NumBytes;
 | 
						|
  return SpiFlashRead (FlashRegionBios, AddrOffset, ByteCount, Buffer);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Write NumBytes bytes of data from Buffer to the address specified by
 | 
						|
  PAddresss.
 | 
						|
 | 
						|
  @param[in]      PAddress        The starting physical address of the write.
 | 
						|
  @param[in,out]  NumBytes        On input, the number of bytes to write. On output,
 | 
						|
                                  the actual number of bytes written.
 | 
						|
  @param[in]      Buffer          The source data buffer for the write.
 | 
						|
 | 
						|
  @retval         EFI_SUCCESS.      Opertion is successful.
 | 
						|
  @retval         EFI_DEVICE_ERROR  If there is any device errors.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
LibFvbFlashDeviceWrite (
 | 
						|
  IN        UINTN  PAddress,
 | 
						|
  IN OUT    UINTN  *NumBytes,
 | 
						|
  IN        UINT8  *Buffer
 | 
						|
  )
 | 
						|
{
 | 
						|
  EFI_STATUS  Status;
 | 
						|
  UINT32      ByteCount;
 | 
						|
  UINT32      RgnSize;
 | 
						|
  UINT32      AddrOffset;
 | 
						|
 | 
						|
  Status = SpiGetRegionAddress (FlashRegionBios, NULL, &RgnSize);
 | 
						|
  if (EFI_ERROR (Status)) {
 | 
						|
    return Status;
 | 
						|
  }
 | 
						|
 | 
						|
  // BIOS region offset can be calculated by (PAddress - (0x100000000 - RgnSize))
 | 
						|
  // which equal (PAddress + RgnSize) here.
 | 
						|
  AddrOffset = (UINT32)((UINT32)PAddress + RgnSize);
 | 
						|
  ByteCount  = (UINT32)*NumBytes;
 | 
						|
  return SpiFlashWrite (FlashRegionBios, AddrOffset, ByteCount, Buffer);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Erase the block starting at PAddress.
 | 
						|
 | 
						|
  @param[in]  PAddress        The starting physical address of the block to be erased.
 | 
						|
                              This library assume that caller garantee that the PAddress
 | 
						|
                              is at the starting address of this block.
 | 
						|
  @param[in]  LbaLength       The length of the logical block to be erased.
 | 
						|
 | 
						|
  @retval     EFI_SUCCESS.      Opertion is successful.
 | 
						|
  @retval     EFI_DEVICE_ERROR  If there is any device errors.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
LibFvbFlashDeviceBlockErase (
 | 
						|
  IN    UINTN  PAddress,
 | 
						|
  IN    UINTN  LbaLength
 | 
						|
  )
 | 
						|
{
 | 
						|
  EFI_STATUS  Status;
 | 
						|
  UINT32      RgnSize;
 | 
						|
  UINT32      AddrOffset;
 | 
						|
 | 
						|
  Status = SpiGetRegionAddress (FlashRegionBios, NULL, &RgnSize);
 | 
						|
  if (EFI_ERROR (Status)) {
 | 
						|
    return Status;
 | 
						|
  }
 | 
						|
 | 
						|
  // BIOS region offset can be calculated by (PAddress - (0x100000000 - RgnSize))
 | 
						|
  // which equal (PAddress + RgnSize) here.
 | 
						|
  AddrOffset = (UINT32)((UINT32)PAddress + RgnSize);
 | 
						|
  return SpiFlashErase (FlashRegionBios, AddrOffset, (UINT32)LbaLength);
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Lock or unlock the block starting at PAddress.
 | 
						|
 | 
						|
  @param[in]  PAddress        The starting physical address of region to be (un)locked.
 | 
						|
  @param[in]  LbaLength       The length of the logical block to be erased.
 | 
						|
  @param[in]  Lock            TRUE to lock. FALSE to unlock.
 | 
						|
 | 
						|
  @retval     EFI_SUCCESS.      Opertion is successful.
 | 
						|
  @retval     EFI_DEVICE_ERROR  If there is any device errors.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
LibFvbFlashDeviceBlockLock (
 | 
						|
  IN    UINTN    PAddress,
 | 
						|
  IN    UINTN    LbaLength,
 | 
						|
  IN    BOOLEAN  Lock
 | 
						|
  )
 | 
						|
{
 | 
						|
  return EFI_SUCCESS;
 | 
						|
}
 |