/** @file Copyright (c) 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _PCH_INFO_LIB_H_ #define _PCH_INFO_LIB_H_ #include typedef enum { PchH = 1, PchLp, PchUnknownSeries } PCH_SERIES; typedef enum { SklPch = 1, PchUnknownGeneration } PCH_GENERATION; /** Return Pch stepping type @retval PCH_STEPPING Pch stepping type **/ PCH_STEPPING EFIAPI PchStepping ( VOID ); /** Determine if PCH is supported @retval TRUE PCH is supported @retval FALSE PCH is not supported **/ BOOLEAN IsPchSupported ( VOID ); /** Return Pch Series @retval PCH_SERIES Pch Series **/ PCH_SERIES EFIAPI GetPchSeries ( VOID ); /** Return Pch Generation @retval PCH_GENERATION Pch Generation **/ PCH_GENERATION EFIAPI GetPchGeneration ( VOID ); /** Get Pch Maximum Pcie Root Port Number @retval PcieMaxRootPort Pch Maximum Pcie Root Port Number **/ UINT8 EFIAPI GetPchMaxPciePortNum ( VOID ); /** Get Pch Maximum Sata Port Number @retval Pch Maximum Sata Port Number **/ UINT8 EFIAPI GetPchMaxSataPortNum ( VOID ); /** Get Pch Usb Maximum Physical Port Number @retval Pch Usb Maximum Physical Port Number **/ UINT8 EFIAPI GetPchUsbMaxPhysicalPortNum ( VOID ); /** Get Pch Maximum Usb2 Port Number of XHCI Controller @retval Pch Maximum Usb2 Port Number of XHCI Controller **/ UINT8 EFIAPI GetPchXhciMaxUsb2PortNum ( VOID ); /** Get Pch Maximum Usb3 Port Number of XHCI Controller @retval Pch Maximum Usb3 Port Number of XHCI Controller **/ UINT8 EFIAPI GetPchXhciMaxUsb3PortNum ( VOID ); /** Return TRUE if Server Sata is present @retval BOOLEAN TRUE if sSata device is present **/ BOOLEAN EFIAPI GetIsPchsSataPresent ( VOID ); /** Get Pch Maximum sSata Port Number @param[in] None @retval Pch Maximum sSata Port Number **/ UINT8 EFIAPI GetPchMaxsSataPortNum ( VOID ); /** Get Pch Maximum sSata Controller Number @param[in] None @retval Pch Maximum sSata Controller Number **/ UINT8 EFIAPI GetPchMaxsSataControllerNum ( VOID ); /** Return Pch Lpc Device Id @retval UINT16 Pch DeviceId **/ UINT16 EFIAPI GetPchLpcDeviceId ( VOID ); /** Get PCH stepping ASCII string The return string is zero terminated. @param [in] PchStep Pch stepping @param [out] Buffer Output buffer of string @param [in,out] BufferSize Size of input buffer, and return required string size when buffer is too small. @retval EFI_SUCCESS String copy successfully @retval EFI_INVALID_PARAMETER The stepping is not supported, or parameters are NULL @retval EFI_BUFFER_TOO_SMALL Input buffer size is too small **/ EFI_STATUS PchGetSteppingStr ( IN PCH_STEPPING PchStep, OUT CHAR8 *Buffer, IN OUT UINT32 *BufferSize ); /** Get PCH series ASCII string The return string is zero terminated. @param [in] PchSeries Pch series @param [out] Buffer Output buffer of string @param [in,out] BufferSize Size of input buffer, and return required string size when buffer is too small. @retval EFI_SUCCESS String copy successfully @retval EFI_INVALID_PARAMETER The series is not supported, or parameters are NULL @retval EFI_BUFFER_TOO_SMALL Input buffer size is too small **/ EFI_STATUS PchGetSeriesStr ( IN PCH_SERIES PchSeries, OUT CHAR8 *Buffer, IN OUT UINT32 *BufferSize ); /** Get PCH Sku ASCII string The return string is zero terminated. @param [in] LpcDid LPC device id @param [out] Buffer Output buffer of string @param [in,out] BufferSize Size of input buffer, and return required string size when buffer is too small. @retval EFI_SUCCESS String copy successfully @retval EFI_INVALID_PARAMETER The series is not supported, or parameters are NULL @retval EFI_BUFFER_TOO_SMALL Input buffer size is too small **/ EFI_STATUS PchGetSkuStr ( IN UINT16 LpcDid, OUT CHAR8 *Buffer, IN OUT UINT32 *BufferSize ); #endif // _PCH_INFO_LIB_H_