/** @file
|
Header file for PchInfoLib.
|
|
Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
**/
|
|
#ifndef _PCH_INFO_LIB_H_
|
#define _PCH_INFO_LIB_H_
|
|
#include <PchHda.h>
|
|
typedef UINT8 PCH_STEPPING;
|
#define PCH_A0 0x00
|
#define PCH_A1 0x01
|
#define PCH_B0 0x10
|
#define PCH_B1 0x11
|
#define PCH_C0 0x20
|
#define PCH_C1 0x21
|
#define PCH_D0 0x30
|
#define PCH_D1 0x31
|
#define PCH_STEPPING_MAX 0xFF
|
|
typedef UINT8 PCH_SERIES;
|
#define PCH_H 1
|
#define PCH_LP 2
|
#define PCH_SERVER 0x80
|
#define PCH_UNKNOWN_SERIES 0xFF
|
|
typedef UINT8 PCH_GENERATION;
|
#define CNL_PCH 3
|
#define CDF_PCH 0x80
|
#define PCH_UNKNOWN_GENERATION 0xFF
|
|
typedef enum {
|
RstUnsupported = 0,
|
RstPremium,
|
RstOptane,
|
RstMaxMode
|
} RST_MODE;
|
|
/**
|
Return LPC Device Id
|
|
@retval PCH_LPC_DEVICE_ID PCH Lpc Device ID
|
**/
|
UINT16
|
PchGetLpcDid (
|
VOID
|
);
|
|
/**
|
Return Pch stepping type
|
|
@retval PCH_STEPPING Pch stepping type
|
**/
|
PCH_STEPPING
|
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
|
PchSeries (
|
VOID
|
);
|
|
/**
|
Check if this is PCH LP series
|
|
@retval TRUE It's PCH LP series
|
@retval FALSE It's not PCH LP series
|
**/
|
BOOLEAN
|
IsPchLp (
|
VOID
|
);
|
|
/**
|
Check if this is PCH H series
|
|
@retval TRUE It's PCH H series
|
@retval FALSE It's not PCH H series
|
**/
|
BOOLEAN
|
IsPchH (
|
VOID
|
);
|
|
/**
|
Check if this is Server PCH
|
|
@retval TRUE It's a Server PCH
|
@retval FALSE It's not a Server PCH
|
**/
|
BOOLEAN
|
IsPchServer (
|
VOID
|
);
|
|
/**
|
Return Pch Generation
|
|
@retval PCH_GENERATION Pch Generation
|
**/
|
PCH_GENERATION
|
PchGeneration (
|
VOID
|
);
|
|
/**
|
Check if this is CDF PCH generation
|
|
@retval TRUE It's CDF PCH
|
@retval FALSE It's not CDF PCH
|
**/
|
BOOLEAN
|
IsCdfPch (
|
VOID
|
);
|
|
/**
|
@retval TRUE It's CNL PCH
|
@retval FALSE It's not CNL PCH
|
**/
|
BOOLEAN
|
IsCnlPch (
|
VOID
|
);
|
|
/**
|
Check if this is Server SKU
|
|
@retval TRUE It's PCH Server SKU
|
@retval FALSE It's not PCH Server SKU
|
**/
|
BOOLEAN
|
IsPchServerSku (
|
VOID
|
);
|
|
/**
|
Get Pch Maximum Pcie Root Port Number
|
|
@retval PcieMaxRootPort Pch Maximum Pcie Root Port Number
|
**/
|
UINT8
|
GetPchMaxPciePortNum (
|
VOID
|
);
|
|
/**
|
Get Pch Maximum Pcie Controller Number
|
|
@retval Pch Maximum Pcie Controller Number
|
**/
|
UINT8
|
GetPchMaxPcieControllerNum (
|
VOID
|
);
|
|
/**
|
Get Pch Maximum Pcie Clock Number
|
|
@retval Pch Maximum Pcie Clock Number
|
**/
|
UINT8
|
GetPchMaxPcieClockNum (
|
VOID
|
);
|
|
/**
|
Get Pch Usb2 Maximum Physical Port Number
|
|
@retval Pch Usb2 Maximum Physical Port Number
|
**/
|
UINT8
|
GetPchUsb2MaxPhysicalPortNum (
|
VOID
|
);
|
|
/**
|
Get Pch Maximum Usb2 Port Number of XHCI Controller
|
|
@retval Pch Maximum Usb2 Port Number of XHCI Controller
|
**/
|
UINT8
|
GetPchXhciMaxUsb2PortNum (
|
VOID
|
);
|
|
/**
|
Get Pch Maximum Usb3 Port Number of XHCI Controller
|
|
@retval Pch Maximum Usb3 Port Number of XHCI Controller
|
**/
|
UINT8
|
GetPchXhciMaxUsb3PortNum (
|
VOID
|
);
|
|
/**
|
Get Pch Maximum Serial IO controllers number
|
|
@retval Pch Maximum Serial IO controllers number
|
**/
|
UINT8
|
GetPchMaxSerialIoControllersNum (
|
VOID
|
);
|
|
/**
|
Get Pch Maximum Serial IO I2C controllers number
|
|
@retval Pch Maximum Serial IO I2C controllers number
|
**/
|
UINT8
|
GetPchMaxSerialIoI2cControllersNum (
|
VOID
|
);
|
|
/**
|
Get Pch Maximum Serial IO SPI controllers number
|
|
@retval Pch Maximum Serial IO SPI controllers number
|
**/
|
UINT8
|
GetPchMaxSerialIoSpiControllersNum (
|
VOID
|
);
|
|
/**
|
Get Pch Maximum Serial IO UART controllers number
|
|
@retval Pch Maximum Serial IO UART controllers number
|
**/
|
UINT8
|
GetPchMaxSerialIoUartControllersNum (
|
VOID
|
);
|
|
#define PCH_STEPPING_STR_LENGTH_MAX 3
|
|
/**
|
Get PCH stepping ASCII string.
|
Function determines major and minor stepping versions and writes them into a buffer.
|
The return string is zero terminated
|
|
@param [out] Buffer Output buffer of string
|
@param [in] BufferSize Buffer size.
|
Must not be less then PCH_STEPPING_STR_LENGTH_MAX
|
|
@retval EFI_SUCCESS String copied 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 (
|
OUT CHAR8 *Buffer,
|
IN UINT32 BufferSize
|
);
|
|
/**
|
Get PCH series ASCII string.
|
The return string is zero terminated.
|
|
@retval Static ASCII string of PCH Series
|
**/
|
CHAR8*
|
PchGetSeriesStr (
|
);
|
|
/**
|
Get PCH Sku ASCII string
|
The return string is zero terminated.
|
|
@retval Static ASCII string of PCH Sku
|
**/
|
CHAR8*
|
PchGetSkuStr (
|
VOID
|
);
|
|
/**
|
Check if this chipset supports eMMC controller
|
|
@retval BOOLEAN TRUE if supported, FALSE otherwise
|
**/
|
BOOLEAN
|
IsPchEmmcSupported (
|
VOID
|
);
|
|
/**
|
Check if this chipset supports SD controller
|
|
@retval BOOLEAN TRUE if supported, FALSE otherwise
|
**/
|
BOOLEAN
|
IsPchSdCardSupported (
|
VOID
|
);
|
|
/**
|
Check if this chipset supports UFS controller
|
|
@retval BOOLEAN TRUE if supported, FALSE otherwise
|
**/
|
BOOLEAN
|
IsPchUfsSupported (
|
VOID
|
);
|
|
/**
|
Gets the maximum number of UFS controller supported by this chipset.
|
|
@return Number of supported UFS controllers
|
**/
|
UINT8
|
PchGetMaxUfsNum (
|
VOID
|
);
|
|
/**
|
Get RST mode supported by the silicon
|
|
@retval RST_MODE RST mode supported by silicon
|
**/
|
RST_MODE
|
PchGetSupportedRstMode (
|
VOID
|
);
|
|
/**
|
Check whether integrated LAN controller is supported.
|
|
@retval TRUE GbE is supported in PCH
|
@retval FALSE GbE is not supported by PCH
|
**/
|
BOOLEAN
|
PchIsGbeSupported (
|
VOID
|
);
|
|
/**
|
Check if given Display Audio Link T-Mode is supported
|
|
@param[in] Tmode T-mode support to be checked
|
|
@retval TRUE T-mode supported
|
@retval FALSE T-mode not supported
|
**/
|
BOOLEAN
|
IsAudioIDispTmodeSupported (
|
IN PCH_HDAUDIO_IDISP_TMODE Tmode
|
);
|
|
/**
|
Check if link between PCH and CPU is an P-DMI
|
|
@retval TRUE P-DMI link
|
@retval FALSE Not an P-DMI link
|
**/
|
BOOLEAN
|
IsPchWithPdmi (
|
VOID
|
);
|
|
/**
|
Check if link between PCH and CPU is an OP-DMI
|
|
@retval TRUE OP-DMI link
|
@retval FALSE Not an OP-DMI link
|
**/
|
BOOLEAN
|
IsPchWithOpdmi (
|
VOID
|
);
|
|
/**
|
Check if link between PCH and CPU is an F-DMI
|
|
@retval TRUE F-DMI link
|
@retval FALSE Not an F-DMI link
|
**/
|
BOOLEAN
|
IsPchWithFdmi (
|
VOID
|
);
|
|
#endif // _PCH_INFO_LIB_H_
|