blob: 6a094d14a0f2d3d08fc3715781030ab5df7e7e2f (
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
/** @file
Non training specific memory controller configuration definitions.
@copyright
Copyright (c) 1999 - 2012 Intel Corporation. All rights reserved.
This software and associated documentation (if any) is furnished
under a license and may only be used or copied in accordance
with the terms of the license. Except as permitted by such
license, no part of this software or documentation may be
reproduced, stored in a retrieval system, or transmitted in any
form or by any means without the express written consent of
Intel Corporation.
This file contains an 'Intel Peripheral Driver' and uniquely
identified as "Intel Reference Module" and is
licensed for Intel CPUs and chipsets under the terms of your
license agreement with Intel or your vendor. This file may
be modified by the user, subject to additional terms of the
license agreement.
**/
#ifndef __MrcMcConfiguration_h__
#define __MrcMcConfiguration_h__
#include "MrcTypes.h"
#include "MrcApi.h"
#include "McAddress.h"
#include "MrcAddressDecodeConfiguration.h"
#include "MrcCommandTraining.h"
#include "MrcCommon.h"
#include "MrcGeneral.h"
#include "MrcGlobal.h"
#include "MrcOem.h"
#include "MrcOemIo.h"
#include "MrcRefreshConfiguration.h"
#include "MrcSchedulerParameters.h"
#include "MrcTimingConfiguration.h"
#define DISABLE_ODT_STATIC (0) ///< May change in the future
#define CDIEVSSHI (2000) ///< Constant CdieVssHi = 2000 (value in pF)
#define RCMDREF (100) ///< Constant RcmdRef = 100 (value in ohm)
/**
@brief
This function calculates the two numbers that get you closest to the slope.
@param[in] Slope - targeted slope (multiplied by 100 for int match)
@retval Returns the Slope Index to be programmed for VtSlope.
**/
extern
U8
MrcCalcVtSlopeCode (
const U16 Slope
);
/**
@brief
This function performs the memory controller configuration non training sequence.
@param[in, out] MrcData - Include all MRC global data.
@retval MrcStatus - mrcSuccess if successful or an error status
**/
extern
MrcStatus
MrcMcConfiguration (
MrcParameters *const MrcData
);
/**
@brief
This function init all the necessary registers for the training.
@param[in] MrcData - Include all MRC global data.
@retval mrcSuccess
**/
extern
MrcStatus
MrcPreTraining (
MrcParameters *const MrcData
);
/**
@brief
This function initializes all the necessary registers after main training steps but before LCT.
@param[in] MrcData - Include all MRC global data.
@retval mrcSuccess
**/
extern
MrcStatus
MrcPostTraining (
MrcParameters *const MrcData
);
/**
@brief
Program PCU_CR_DDR_VOLTAGE register.
@param[in] MrcData - Include all MRC global data.
@param[in] VddVoltage - Current DDR voltage.
@retval none
**/
extern
void
MrcSetPcuDdrVoltage (
IN OUT MrcParameters *MrcData,
IN MrcVddSelect VddVoltage
);
#endif // __MrcMcConfiguration_h__
|