7 * ARDK common header file
9 * @xrefitem bom "File Content Label" "Release Content"
11 * @e sub-project: (Mem)
12 * @e \$Revision: 44324 $ @e \$Date: 2010-12-22 17:16:51 +0800 (Wed, 22 Dec 2010) $
15 /*****************************************************************************
17 * Copyright (c) 2011, Advanced Micro Devices, Inc.
18 * All rights reserved.
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.
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 * ***************************************************************************
48 /*----------------------------------------------------------------------------
49 * Mixed (DEFINITIONS AND MACROS / TYPEDEFS, STRUCTURES, ENUMS)
51 *----------------------------------------------------------------------------
54 /*-----------------------------------------------------------------------------
55 * DEFINITIONS AND MACROS
57 *-----------------------------------------------------------------------------
61 #define MAX_CS_PER_CHANNEL 8 ///< Max CS per channel
62 /*----------------------------------------------------------------------------
63 * TYPEDEFS, STRUCTURES, ENUMS
65 *----------------------------------------------------------------------------
70 UINT16 Speed; ///< Dram speed in MHz
71 UINT8 Loads; ///< Number of Data Loads
72 UINT32 AddrTmg; ///< Address Timing value
73 UINT32 Odc; ///< Output Driver Compensation Value
78 UINT16 Speed; ///< Dram speed in MHz
79 UINT8 Loads; ///< Number of Data Loads
80 UINT32 AddrTmg; ///< Address Timing value
81 UINT32 Odc; ///< Output Driver Compensation Value
82 UINT8 Dimms; ///< Number of Dimms
85 /** MARDK Structure for RDIMMs*/
87 UINT16 Speed; ///< Dram speed in MHz
88 UINT16 DIMMRankType; ///< Bitmap of Ranks //Bit0-3:DIMM0(1:SR, 2:DR, 4:QR, 0:No Dimm, 0xF:Any), Bit4-7:DIMM1, Bit8-11:DIMM2, Bit12-16:DIMM3
89 UINT32 AddrTmg; ///< Address Timing value
90 UINT16 RC2RC8; ///< RC2 and RC8 value //High byte: 1st pair value, Low byte: 2nd pair value
91 UINT8 Dimms; ///< Number of Dimms
96 UINT16 DIMMRankType; ///< Bitmap of Ranks //Bit0-3:DIMM0(1:SR, 2:DR, 4:QR, 0:No Dimm, 0xF:Any), Bit4-7:DIMM1, Bit8-11:DIMM2, Bit12-16:DIMM3
97 UINT32 PhyRODTCSLow; ///< Fn2_9C 180
98 UINT32 PhyRODTCSHigh; ///< Fn2_9C 181
99 UINT32 PhyWODTCSLow; ///< Fn2_9C 182
100 UINT32 PhyWODTCSHigh; ///< Fn2_9C 183
101 UINT8 Dimms; ///< Number of Dimms
102 } ADV_PSCFG_ODT_ENTRY;
104 /** MARDK Structure for Write Levelization ODT*/
106 UINT16 DIMMRankType; ///< Bitmap of Ranks //Bit0-3:DIMM0(1:SR, 2:DR, 4:QR, 0:No Dimm, 0xF:Any), Bit4-7:DIMM1, Bit8-11:DIMM2, Bit12-16:DIMM3
107 UINT8 PhyWrLvOdt[MAX_CS_PER_CHANNEL/2]; ///< WrLvOdt (Fn2_9C_0x08[11:8]) Value for each Dimm
108 UINT8 Dimms; ///< Number of Dimms
109 } ADV_R_PSCFG_WL_ODT_ENTRY;
111 /*----------------------------------------------------------------------------
112 * FUNCTIONS PROTOTYPE
114 *----------------------------------------------------------------------------
119 IN OUT MEM_DATA_STRUCT *MemData,
121 IN OUT CH_DEF_STRUCT *CurrentChannel
126 IN OUT MEM_DATA_STRUCT *MemData,
128 IN OUT CH_DEF_STRUCT *CurrentChannel
133 IN OUT MEM_DATA_STRUCT *MemData,
135 IN OUT CH_DEF_STRUCT *CurrentChannel
140 IN OUT MEM_DATA_STRUCT *MemData,
142 IN OUT CH_DEF_STRUCT *CurrentChannel
147 IN OUT MEM_DATA_STRUCT *MemData,
149 IN OUT CH_DEF_STRUCT *CurrentChannel
154 IN OUT MEM_DATA_STRUCT *MemData,
156 IN OUT CH_DEF_STRUCT *CurrentChannel
161 IN OUT MEM_DATA_STRUCT *MemData,
163 IN OUT CH_DEF_STRUCT *CurrentChannel
168 IN OUT MEM_DATA_STRUCT *MemData,
170 IN OUT CH_DEF_STRUCT *CurrentChannel
175 IN OUT MEM_DATA_STRUCT *MemData,
177 IN OUT CH_DEF_STRUCT *CurrentChannel
182 IN OUT MEM_DATA_STRUCT *MemData,
184 IN OUT CH_DEF_STRUCT *CurrentChannel
189 IN OUT MEM_DATA_STRUCT *MemData,
191 IN OUT CH_DEF_STRUCT *CurrentChannel
196 IN OUT MEM_DATA_STRUCT *MemData,
198 IN OUT CH_DEF_STRUCT *CurrentChannel
203 IN OUT MEM_DATA_STRUCT *MemData,
205 IN OUT CH_DEF_STRUCT *CurrentChannel
210 IN OUT MEM_DATA_STRUCT *MemData,
212 IN OUT CH_DEF_STRUCT *CurrentChannel
217 IN OUT MEM_DATA_STRUCT *MemData,
219 IN OUT CH_DEF_STRUCT *CurrentChannel
224 IN OUT MEM_DATA_STRUCT *MemData,
226 IN OUT CH_DEF_STRUCT *CurrentChannel
231 IN OUT MEM_DATA_STRUCT *MemData,
233 IN OUT CH_DEF_STRUCT *CurrentChannel
238 IN OUT MEM_DATA_STRUCT *MemData,
240 IN OUT CH_DEF_STRUCT *CurrentChannel
245 IN OUT MEM_DATA_STRUCT *MemData,
247 IN OUT CH_DEF_STRUCT *CurrentChannel
252 IN OUT MEM_DATA_STRUCT *MemData,
254 IN OUT CH_DEF_STRUCT *CurrentChannel
259 IN OUT MEM_DATA_STRUCT *MemData,
261 IN OUT CH_DEF_STRUCT *CurrentChannel
266 IN OUT MEM_DATA_STRUCT *MemData,
268 IN OUT CH_DEF_STRUCT *CurrentChannel
273 IN OUT MEM_DATA_STRUCT *MemData,
275 IN OUT CH_DEF_STRUCT *CurrentChannel
280 IN CH_DEF_STRUCT *CurrentChannel
285 IN OUT MEM_DATA_STRUCT *MemData,
287 IN OUT CH_DEF_STRUCT *CurrentChannel
291 MemRecNGetPsRankType (
292 IN CH_DEF_STRUCT *CurrentChannel
296 MemRecNGetPsCfgUDIMM3Nb (
297 IN OUT MEM_DATA_STRUCT *MemData,
299 IN OUT CH_DEF_STRUCT *CurrentChannel
303 MemRecNGetPsCfgSODIMM3Nb (
304 IN OUT MEM_DATA_STRUCT *MemData,
306 IN OUT CH_DEF_STRUCT *CurrentChannel
310 MemRecNGetPsCfgRDIMM3Nb (
311 IN OUT MEM_DATA_STRUCT *MemData,
313 IN OUT CH_DEF_STRUCT *CurrentChannel