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>
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Platform Hook Library instance for UART device.
 | 
						|
 | 
						|
  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <Base.h>
 | 
						|
#include <PiDxe.h>
 | 
						|
#include <UniversalPayload/SerialPortInfo.h>
 | 
						|
#include <Library/PlatformHookLib.h>
 | 
						|
#include <Library/PcdLib.h>
 | 
						|
#include <Library/HobLib.h>
 | 
						|
 | 
						|
/** Library Constructor
 | 
						|
 | 
						|
  @retval RETURN_SUCCESS  Success.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
PlatformHookSerialPortConstructor (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  // Nothing to do here. This constructor is added to
 | 
						|
  // enable the chain of constructor invocation for
 | 
						|
  // dependent libraries.
 | 
						|
  return RETURN_SUCCESS;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  Performs platform specific initialization required for the CPU to access
 | 
						|
  the hardware associated with a SerialPortLib instance.  This function does
 | 
						|
  not initialize the serial port hardware itself.  Instead, it initializes
 | 
						|
  hardware devices that are required for the CPU to access the serial port
 | 
						|
  hardware.  This function may be called more than once.
 | 
						|
 | 
						|
  @retval RETURN_SUCCESS       The platform specific initialization succeeded.
 | 
						|
  @retval RETURN_DEVICE_ERROR  The platform specific initialization could not be completed.
 | 
						|
 | 
						|
**/
 | 
						|
RETURN_STATUS
 | 
						|
EFIAPI
 | 
						|
PlatformHookSerialPortInitialize (
 | 
						|
  VOID
 | 
						|
  )
 | 
						|
{
 | 
						|
  RETURN_STATUS                       Status;
 | 
						|
  UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO  *SerialPortInfo;
 | 
						|
  UINT8                               *GuidHob;
 | 
						|
  UNIVERSAL_PAYLOAD_GENERIC_HEADER    *GenericHeader;
 | 
						|
 | 
						|
  GuidHob = GetFirstGuidHob (&gUniversalPayloadSerialPortInfoGuid);
 | 
						|
  if (GuidHob == NULL) {
 | 
						|
    return EFI_NOT_FOUND;
 | 
						|
  }
 | 
						|
 | 
						|
  GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *)GET_GUID_HOB_DATA (GuidHob);
 | 
						|
  if ((sizeof (UNIVERSAL_PAYLOAD_GENERIC_HEADER) > GET_GUID_HOB_DATA_SIZE (GuidHob)) || (GenericHeader->Length > GET_GUID_HOB_DATA_SIZE (GuidHob))) {
 | 
						|
    return EFI_NOT_FOUND;
 | 
						|
  }
 | 
						|
 | 
						|
  if (GenericHeader->Revision == UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO_REVISION) {
 | 
						|
    SerialPortInfo = (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO *)GET_GUID_HOB_DATA (GuidHob);
 | 
						|
    if (GenericHeader->Length < UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD (UNIVERSAL_PAYLOAD_SERIAL_PORT_INFO, RegisterBase)) {
 | 
						|
      //
 | 
						|
      // Return if can't find the Serial Port Info Hob with enough length
 | 
						|
      //
 | 
						|
      return EFI_NOT_FOUND;
 | 
						|
    }
 | 
						|
 | 
						|
    Status = PcdSetBoolS (PcdSerialUseMmio, SerialPortInfo->UseMmio);
 | 
						|
    if (RETURN_ERROR (Status)) {
 | 
						|
      return Status;
 | 
						|
    }
 | 
						|
 | 
						|
    Status = PcdSet64S (PcdSerialRegisterBase, SerialPortInfo->RegisterBase);
 | 
						|
    if (RETURN_ERROR (Status)) {
 | 
						|
      return Status;
 | 
						|
    }
 | 
						|
 | 
						|
    Status = PcdSet32S (PcdSerialRegisterStride, SerialPortInfo->RegisterStride);
 | 
						|
    if (RETURN_ERROR (Status)) {
 | 
						|
      return Status;
 | 
						|
    }
 | 
						|
 | 
						|
    Status = PcdSet32S (PcdSerialBaudRate, SerialPortInfo->BaudRate);
 | 
						|
    if (RETURN_ERROR (Status)) {
 | 
						|
      return Status;
 | 
						|
    }
 | 
						|
 | 
						|
    return RETURN_SUCCESS;
 | 
						|
  }
 | 
						|
 | 
						|
  return EFI_NOT_FOUND;
 | 
						|
}
 |