/** @file Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that 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 #include #include #include #include "PeiGpioTable.h" /** Tigerlake Simics board configuration init function for PEI post memory phase. PEI_BOARD_CONFIG_PCD_INIT @param Content pointer to the buffer contain init information for board init. @retval EFI_SUCCESS The function completed successfully. @retval EFI_INVALID_PARAMETER The parameter is NULL. **/ EFI_STATUS EFIAPI TigerLakeSimicsInit ( VOID ) { PcdSet32S (PcdBoardGpioTable, (UINTN) mGpioTableTglSimics); PcdSet16S (PcdBoardGpioTableSize, sizeof (mGpioTableTglSimics) / sizeof(GPIO_INIT_CONFIG)); PcdSet8S (PcdUsb20OverCurrentPinPort0, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort1, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort2, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort3, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort4, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort5, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort6, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort7, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort8, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort9, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort10, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort11, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort12, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort13, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort14, 0x0); PcdSet8S (PcdUsb20OverCurrentPinPort15, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort0, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort1, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort2, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort3, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort4, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort5, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort6, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort7, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort8, 0x0); PcdSet8S (PcdUsb30OverCurrentPinPort9, 0x0); PcdSet8S (PcdCpuUsb30PortEnable, 0x0F); PcdSet8S (PcdSataPortsEnable0, 0x1); return EFI_SUCCESS; } /** Configures GPIO @param[in] GpioTable Point to Platform Gpio table @param[in] GpioTableCount Number of Gpio table entries **/ VOID ConfigureGpio ( IN GPIO_INIT_CONFIG *GpioDefinition, IN UINT16 GpioTableCount ) { EFI_STATUS Status; DEBUG ((DEBUG_INFO, "ConfigureGpio() Start\n")); Status = GpioConfigurePads (GpioTableCount, GpioDefinition); DEBUG ((DEBUG_INFO, "ConfigureGpio() End\n")); } /** Configure GPIO **/ VOID GpioInit ( VOID ) { ConfigureGpio ((VOID *) (UINTN) PcdGet32 (PcdBoardGpioTable), (UINTN) PcdGet16 (PcdBoardGpioTableSize)); return; } /** Configure GPIO and SIO @retval EFI_SUCCESS Operation success. **/ EFI_STATUS EFIAPI TigerLakeSimicsBoardInitBeforeSiliconInit ( VOID ) { TigerLakeSimicsInit (); GpioInit (); /// /// Do Late PCH init /// LateSiliconInit (); return EFI_SUCCESS; } EFI_STATUS EFIAPI TigerLakeSimicsBoardInitAfterSiliconInit ( VOID ) { return EFI_SUCCESS; }