hc
2024-03-25 edb30157bad0c0001c32b854271ace01d3b9a16a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/** @file
  Scs policy
 
  Copyright (c) 2019 Intel Corporation. All rights reserved. <BR>
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef _SCS_CONFIG_H_
#define _SCS_CONFIG_H_
 
#include <ConfigBlock.h>
 
#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.
 
  <b>Revision 1</b>:
  - Initial version
  <b>Revision 2</b>:
  - Add policy SdCardPowerEnableActiveHigh
**/
typedef struct {
  CONFIG_BLOCK_HEADER   Header;                   ///< Config Block Header
 
  UINT32    ScsEmmcEnabled                :  2;   ///< Determine if eMMC is enabled - 0: Disabled, <b>1: Enabled</b>.
  UINT32    ScsEmmcHs400Enabled           :  1;   ///< Determine eMMC HS400 Mode if ScsEmmcEnabled - <b>0: Disabled</b>, 1: Enabled
  /**
    Determine if HS400 Training is required, set to FALSE if Hs400 Data is valid. <b>0: Disabled</b>, 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, <b>1 - 40 Ohm</b>, 2 - 50 Ohm
  /**
    Sd Card Controler 0: Disable; <b>1: Enable</b>.
    For Desktop sku, the SD Card Controller POR should be disabled. <b> 0:Disable </b>.
  **/
  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, <b>1: Active high</b>
  UINT32    RsvdBits                      :  7;
  UINT32    Rsvd0;                                ///< Reserved bytes
} PCH_SCS_CONFIG;
 
#pragma pack (pop)
 
#endif // _SCS_CONFIG_H_