/** @file Scs policy Copyright (c) 2019 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _SCS_CONFIG_H_ #define _SCS_CONFIG_H_ #include #define SCS_CONFIG_REVISION 2 extern EFI_GUID gScsConfigGuid; #pragma pack (push,1) typedef enum { DriverStrength33Ohm = 0, DriverStrength40Ohm, DriverStrength50Ohm } PCH_SCS_EMMC_DRIVER_STRENGTH; /** The PCH_SCS_CONFIG block describes Storage and Communication Subsystem (SCS) settings for PCH. Revision 1: - Initial version Revision 2: - Add policy SdCardPowerEnableActiveHigh **/ typedef struct { CONFIG_BLOCK_HEADER Header; ///< Config Block Header UINT32 ScsEmmcEnabled : 2; ///< Determine if eMMC is enabled - 0: Disabled, 1: Enabled. UINT32 ScsEmmcHs400Enabled : 1; ///< Determine eMMC HS400 Mode if ScsEmmcEnabled - 0: Disabled, 1: Enabled /** Determine if HS400 Training is required, set to FALSE if Hs400 Data is valid. 0: Disabled, 1: Enabled. First Boot or CMOS clear, system boot with Default settings, set tuning required. Subsequent Boots, Get Variable 'Hs400TuningData' - if failed to get variable, set tuning required - if passed, retrieve Hs400DataValid, Hs400RxStrobe1Dll and Hs400TxDataDll from variable. Set tuning not required. **/ UINT32 ScsEmmcHs400TuningRequired : 1; UINT32 ScsEmmcHs400DllDataValid : 1; ///< Set if HS400 Tuning Data Valid UINT32 ScsEmmcHs400RxStrobeDll1 : 7; ///< Rx Strobe Delay Control - Rx Strobe Delay DLL 1 (HS400 Mode) UINT32 ScsEmmcHs400TxDataDll : 7; ///< Tx Data Delay Control 1 - Tx Data Delay (HS400 Mode) UINT32 ScsEmmcHs400DriverStrength : 3; ///< I/O driver strength: 0 - 33 Ohm, 1 - 40 Ohm, 2 - 50 Ohm /** Sd Card Controler 0: Disable; 1: Enable. For Desktop sku, the SD Card Controller POR should be disabled. 0:Disable . **/ UINT32 ScsSdcardEnabled : 1; UINT32 ScsUfsEnabled : 1; ///< Determine if Ufs is enabled 0: Disabled 1: Enabled UINT32 SdCardPowerEnableActiveHigh : 1; ///< Determine SD_PWREN# polarity 0: Active low, 1: Active high UINT32 RsvdBits : 7; UINT32 Rsvd0; ///< Reserved bytes } PCH_SCS_CONFIG; #pragma pack (pop) #endif // _SCS_CONFIG_H_