AGESA F15: AMD family15 AGESA code
[coreboot.git] / src / vendorcode / amd / agesa / f15 / Proc / Mem / Tech / DDR3 / mt3.h
1 /* $NoKeywords:$ */
2 /**
3  * @file
4  *
5  * mt3.h
6  *
7  * Common Technology
8  *
9  * @xrefitem bom "File Content Label" "Release Content"
10  * @e project: AGESA
11  * @e sub-project: (Mem/Tech/DDR3)
12  * @e \$Revision: 44324 $ @e \$Date: 2010-12-22 02:16:51 -0700 (Wed, 22 Dec 2010) $
13  *
14  **/
15 /*****************************************************************************
16   *
17  * Copyright (C) 2012 Advanced Micro Devices, Inc.
18  * All rights reserved.
19  *
20  * Redistribution and use in source and binary forms, with or without
21  * modification, are permitted provided that the following conditions are met:
22  *     * Redistributions of source code must retain the above copyright
23  *       notice, this list of conditions and the following disclaimer.
24  *     * Redistributions in binary form must reproduce the above copyright
25  *       notice, this list of conditions and the following disclaimer in the
26  *       documentation and/or other materials provided with the distribution.
27  *     * Neither the name of Advanced Micro Devices, Inc. nor the names of
28  *       its contributors may be used to endorse or promote products derived
29  *       from this software without specific prior written permission.
30  *
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
32  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
33  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
34  * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
35  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
36  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
37  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
38  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
39  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
40  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41   *
42   * ***************************************************************************
43   *
44  */
45
46 #ifndef _MT3_H_
47 #define _MT3_H_
48
49 /*----------------------------------------------------------------------------
50  *   Mixed (DEFINITIONS AND MACROS / TYPEDEFS, STRUCTURES, ENUMS)
51  *
52  *----------------------------------------------------------------------------
53  */
54
55 /*-----------------------------------------------------------------------------
56  *                         DEFINITIONS AND MACROS
57  *
58  *-----------------------------------------------------------------------------
59  */
60
61 /*----------------------------------------------------------------------------
62  *                         TYPEDEFS, STRUCTURES, ENUMS
63  *
64  *----------------------------------------------------------------------------
65  */
66
67 /*----------------------------------------------------------------------------
68  *                           FUNCTIONS PROTOTYPE
69  *
70  *----------------------------------------------------------------------------
71  */
72
73 BOOLEAN
74 MemConstructTechBlock3 (
75   IN OUT   MEM_TECH_BLOCK *TechPtr,
76   IN OUT   MEM_NB_BLOCK *NBPtr
77   );
78 BOOLEAN
79 MemTSetDramMode3 (
80   IN OUT   MEM_TECH_BLOCK *TechPtr
81   );
82
83 BOOLEAN
84 MemTDIMMPresence3 (
85   IN OUT   MEM_TECH_BLOCK *TechPtr
86   );
87
88 BOOLEAN
89 MemTSPDCalcWidth3 (
90   IN OUT   MEM_TECH_BLOCK *TechPtr
91   );
92
93 BOOLEAN
94 MemTSPDGetTargetSpeed3 (
95   IN OUT   MEM_TECH_BLOCK *TechPtr
96   );
97
98 BOOLEAN
99 MemTAutoCycTiming3 (
100   IN OUT   MEM_TECH_BLOCK *TechPtr
101   );
102
103 BOOLEAN
104 MemTSPDSetBanks3 (
105   IN OUT   MEM_TECH_BLOCK *TechPtr
106   );
107
108 VOID
109 MemTGetCSIntLvAddr3 (
110   IN       UINT8 BankEnc,
111   OUT      UINT8 *LowBit,
112   OUT      UINT8 *HiBit
113   );
114
115 VOID
116 MemTSendAllMRCmds3 (
117   IN OUT   MEM_TECH_BLOCK *TechPtr,
118   IN       UINT8 ChipSel
119   );
120
121 VOID
122 FreqChgCtrlWrd3 (
123   IN OUT   MEM_TECH_BLOCK *TechPtr
124   );
125
126
127 BOOLEAN
128 MemTGetDimmSpdBuffer3 (
129   IN OUT   MEM_TECH_BLOCK *TechPtr,
130   IN OUT   UINT8 **SpdBuffer,
131   IN       UINT8 Dimm
132   );
133 #endif  /* _MT3_H_ */
134
135