/** @file UBA GPIO Platform Specific functions Library Header File. @copyright Copyright 2016 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _UBA_GPIO_PLATFORM_CONFIG_LIB_H #define _UBA_GPIO_PLATFORM_CONFIG_LIB_H #include #include #include #define PLATFORM_GPIO_CONFIG_SIGNATURE SIGNATURE_32 ('P', 'G', 'P', 'O') #define PLATFORM_GPIO_CONFIG_VERSION 01 // {d2c2adab-80c0-4a13-a0f8-adede1a51740} #define PLATFORM_GPIO_PLATFORM_CONFIG_DATA_GUID \ { 0xd2c2adab, 0x80c0, 0x4a13, { 0xa0, 0xf8, 0xad, 0xed, 0xe1, 0xa5, 0x17, 0x40 } } //Use this define to skip the usage of a gpio in PLATFORM_GPIO_CONFIG_TABLE #define UNUSED_GPIO 0x0 typedef struct _PLATFORM_GPIO_CONFIG_TABLE{ // // Header information // INT32 Signature; INT32 Version; GPIO_INIT_CONFIG GpioMfgPad; GPIO_PAD ReservedM; GPIO_PAD RcvJumper; // // ADR pads // GPIO_PAD FmAdrTrigger; GPIO_PAD AdrEnable; // // OemProcMemInit pad // GPIO_PAD ForceTo1SConfigModePad; // // Used by PC Platforms // GPIO_PAD QATGpio; // // Used by PC platforms. This is the first GPIO pad of the pad series to indicate Board ID // GPIO_PAD BoardID0Gpio; // // Used to indicate proper pin to for WHEA SCI detection // GPIO_PAD WheaSciPad; // // Used to generate CPU HP SMI // GPIO_PAD CpuHpSmiPad; // // Used to signal FPGA error // GPIO_PAD FpgaErrorSingnalPad1; // // Used to signal FPGA error // GPIO_PAD FpgaErrorSingnalPad2; // Flash Security override GPIO_PAD FlashSecOverride; } PLATFORM_GPIO_CONFIG_TABLE; /** Reads GPIO pin to get Flash Security Override jumper status @param[out] Jumper - The pointer to the jumper output @retval Status - Success if GPIO's are read properly **/ EFI_STATUS GpioGetFlashSecOvrdVal ( OUT UINT32 *Jumper ); /** Reads GPIO pin to get recovery jumper status @param[out] RcvJumper - The pointer to the Recovery jumper input @retval Status - Success if GPIO's are read properly **/ EFI_STATUS GpioGetRcvPadVal ( OUT UINT32 *RcvJumper ); /** Reads GPIO pin to get FM ADR trigger pin @param[out] FmAdrTrigger - The pointer to the ADR trigger input @retval Status - Success if GPIO's are read properly **/ EFI_STATUS GpioGetFmAdrTriggerPadVal ( OUT UINT32 *FmAdrTrigger ); /** Sets GPIO pin to enable ADR on the board @param Set[in] - If TRUE means the pas should go 'high', otherwise 'low' @retval Status - Success if GPIO set properly **/ EFI_STATUS GpioSetAdrEnablePadOutVal ( IN BOOLEAN Set ); /** Reads GPIO pin to Force to S1 config mode pad @param[out] ForceS1ConfigPad - Input value of the Froce S1 Config pad @retval Status - Success if GPIO's are read properly **/ EFI_STATUS GpioGetForcetoS1ConfigModePadVal ( OUT UINT32 *ForceS1ConfigPad ); /** Reads GPIO pin related to QAT @param[out] QATPad - Input value of the QAT pad @retval Status - Success if GPIO's are read properly **/ EFI_STATUS GpioGetQATPadVal ( OUT UINT32 *QATPad ); /** Get GPIO pin for SCI detection for WHEA RAS functionality @param[out] WheaSciPad - Input value of the Whea SCI pad @retval Status - Success if GPIO's pad read properly **/ EFI_STATUS GpioGetWheaSciPad ( OUT UINT32 *WheaSciPad ); /** Get GPIO pin for FPGA error detection RAS functionality @param[out] FpgaErrorPad -The input value of the FPGA error 1 pad @retval Status - Success if GPIO's pad read properly **/ EFI_STATUS GpioGetFpgaErrorPad1 ( OUT UINT32 *FpgaErrorPad ); /** Get GPIO pin for FPGA error detection RAS functionality @param[out] FpgaErrorPad -The input value of the FPGA error 2 pad @retval Status - Success if GPIO's pad read properly **/ EFI_STATUS GpioGetFpgaErrorPad2 ( OUT UINT32 *FpgaErrorPad ); /** Get GPIO pin for CPU HP SMI detection for RAS functionality @retval Status - Success if GPIO's pad read properly **/ EFI_STATUS GpioGetCpuHpSmiPad ( OUT UINT32 *CpuHpSmiPad ); /** Reads GPIO pin that is first bit of the Board ID indication word @param[out] BoardID0Gpio - Input value of the first Board ID pad @retval Status - Success if GPIO's are read properly **/ EFI_STATUS GpioGetBoardId0PadVal ( OUT UINT32 *BoardID0Gpio ); /** Checks whether the MDF jumper has been set @param None @retval ManufacturingMode - TRUE when MFG jumper is on, FALSE otherwise **/ BOOLEAN IsManufacturingMode ( VOID ); STATIC EFI_GUID gPlatformGpioPlatformConfigDataGuid = PLATFORM_GPIO_PLATFORM_CONFIG_DATA_GUID; #endif //_UBA_GPIO_PLATFORM_CONFIG_LIB_H