/** @file
|
|
Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
**/
|
|
#include <PiPei.h>
|
#include <Library/DebugLib.h>
|
#include <Library/BaseMemoryLib.h>
|
#include <Library/IoLib.h>
|
#include <Library/HobLib.h>
|
#include <Library/PcdLib.h>
|
#include <Library/PchCycleDecodingLib.h>
|
#include <Library/PciLib.h>
|
#include <Library/BoardInitLib.h>
|
#include <PeiPlatformHookLib.h>
|
#include "TigerlakeURvpInit.h"
|
#include "GpioTableTigerlakeUDdr4Rvp.h"
|
#include <Library/ConfigBlockLib.h>
|
|
/**
|
GPIO init function for PEI post memory phase.
|
|
@param[in] BoardId An unsigned integrer represent the board id.
|
|
@retval EFI_SUCCESS The function completed successfully.
|
**/
|
EFI_STATUS
|
BoardGpioInit(
|
IN UINT16 BoardId
|
)
|
{
|
//
|
// GPIO Table Init.
|
//
|
switch (BoardId) {
|
|
case BoardIdTglUDdr4:
|
PcdSet32S (PcdBoardGpioTable, (UINTN) mGpioTableTglUDdr4);
|
PcdSet16S (PcdBoardGpioTableSize, mGpioTableTglUDdr4Size);
|
break;
|
|
default:
|
break;
|
}
|
|
return EFI_SUCCESS;
|
}
|
|
/**
|
Touch panel GPIO init function for PEI post memory phase.
|
|
@param[in] BoardId An unsigned integrer represent the board id.
|
|
@retval EFI_SUCCESS The function completed successfully.
|
**/
|
EFI_STATUS
|
TouchPanelGpioInit (
|
IN UINT16 BoardId
|
)
|
{
|
|
return EFI_SUCCESS;
|
}
|
|
/**
|
Misc. init function for PEI post memory phase.
|
|
@param[in] BoardId An unsigned integrer represent the board id.
|
|
@retval EFI_SUCCESS The function completed successfully.
|
**/
|
EFI_STATUS
|
BoardMiscInit (
|
IN UINT16 BoardId
|
)
|
{
|
|
return EFI_SUCCESS;
|
}
|
|
/**
|
Security GPIO init function for PEI post memory phase.
|
|
@param[in] BoardId An unsigned integrer represent the board id.
|
|
@retval EFI_SUCCESS The function completed successfully.
|
**/
|
EFI_STATUS
|
BoardSecurityInit (
|
IN UINT16 BoardId
|
)
|
{
|
return EFI_SUCCESS;
|
}
|
|
/**
|
Board configuration initialization in the post-memory boot phase.
|
**/
|
VOID
|
BoardConfigInit (
|
VOID
|
)
|
{
|
EFI_STATUS Status;
|
UINT16 BoardId;
|
|
BoardId = BoardIdTglUDdr4;
|
|
Status = BoardGpioInit (BoardId);
|
ASSERT_EFI_ERROR (Status);
|
|
Status = TouchPanelGpioInit (BoardId);
|
ASSERT_EFI_ERROR (Status);
|
|
Status = BoardMiscInit (BoardId);
|
ASSERT_EFI_ERROR (Status);
|
|
Status = BoardSecurityInit (BoardId);
|
ASSERT_EFI_ERROR (Status);
|
}
|
|
|
/**
|
Configure GPIO and SIO
|
|
@retval EFI_SUCCESS Operation success.
|
**/
|
EFI_STATUS
|
EFIAPI
|
TigerlakeURvpBoardInitBeforeSiliconInit(
|
VOID
|
)
|
{
|
EFI_STATUS Status;
|
|
DEBUG ((DEBUG_INFO, "Board Init before Silicon Init\n"));
|
|
BoardConfigInit ();
|
//
|
// Configure GPIO and SIO
|
//
|
Status = BoardInit ();
|
ASSERT_EFI_ERROR (Status);
|
|
//
|
// Initializing Platform Specific Programming
|
//
|
Status = PlatformSpecificInit ();
|
ASSERT_EFI_ERROR(Status);
|
|
return EFI_SUCCESS;
|
}
|