/** @file
Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "TigerlakeURvpInit.h"
#include "GpioTableTigerlakeUDdr4Rvp.h"
#include
/**
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;
}