summaryrefslogtreecommitdiff
path: root/Silicon/AMD/Styx/AmdModulePkg/Common/MemSetup.h
blob: ec7c3ce35e8d057564105d2890f301fae4631c22 (plain)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* $NoKeywords */
/**
 * @file
 *
 * MemSetup.h
 *
 * Contains common MemSetup-related structures and defines.
 *
 * @xrefitem bom "File Content Label" "Release Content"
 * @e project: FDK
 * @e sub-project: UEFI
 * @e version: $Revision: 317558 $ @e date: $Date: 2015-04-24 17:20:55 -0700 (Fri, 24 Apr 2015) $
 *
 */
/*****************************************************************************
*
*  Copyright 2013 - 2016 ADVANCED MICRO DEVICES, INC.  All Rights Reserved.
*
*  This program and the accompanying materials are licensed and made available
*  under the terms and conditions of the BSD License which accompanies this
*  distribution. The full text of the license may be found at
*  http://opensource.org/licenses/bsd-license.php
*
*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
*  IMPLIED.
*
***************************************************************************/

//#########################################################################
//#########################################################################
//#########################################################################
//        NOTE: This file shared between SCP and UEFI, make sure all     //
//              changes are reflected in both copies.                    //
//#########################################################################
//#########################################################################
//#########################################################################

#ifndef MEMSETUP_H_
#define MEMSETUP_H_

#ifdef __cplusplus
  extern "C" {
  #endif

/*----------------------------------------------------------------------------------------
 *                             M O D U L E S    U S E D
 *----------------------------------------------------------------------------------------
 */


/*----------------------------------------------------------------------------------------
 *                  T Y P E D E F S     A N D     S T R U C T U R E S
 *----------------------------------------------------------------------------------------
 */

  /// Memory Set up Structure for customer visibility
  typedef struct {
    UINT8  MemoryClockSpeed;                   ///< Memory clock speed
    UINT8  DDR3RttWr;                          ///< DDR3 Rtt_Wr
    UINT8  DDR3RttNom;                         ///< DDR3 Rtt_Nom
    UINT8  DDR4RttWr;                          ///< DDR4 Rtt_Wr
    UINT8  DDR4RttNom;                         ///< DDR4 Rtt_Nom
    UINT8  AddCtrlDriveStrength;               ///< Address/Control Drive Strength
    UINT8  ClockDriveStrengt;                  ///< Clock Drive Strength
    UINT8  DataDMDriveStrength;                ///< Data/DM Drive Strength
    UINT8  DQSDriveStrength;                   ///< DQS Drive Strength
    UINT8  PowerdownEnable;                    ///< Power down Enable
    UINT16 PowerdownIdleClocks;                ///< Power down Idle Clocks
    UINT8  LongCountMask;                      ///< Long Count Mask
    UINT8  ECCEnable;                          ///< ECC Enable/Disable
    UINT16  tref;                              ///< tref
    UINT16  tselseldq;                         ///< tsel_sel_dq
    UINT16  tselseldqs;                        ///< tsel_sel_dqs
    UINT16  trainingProgress;                  ///< training progress
    UINT16  trainingRestore;                   ///< restore training results
  } MEM_SETUP_VAR;

  #ifdef __cplusplus
  }
#endif


#endif /* MEMSETUP_H_ */