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 02:16:51 -0700 (Wed, 22 Dec 2010) $
15 /*****************************************************************************
17 * Copyright (C) 2012 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.
42 * ***************************************************************************
49 /*----------------------------------------------------------------------------
50 * Mixed (DEFINITIONS AND MACROS / TYPEDEFS, STRUCTURES, ENUMS)
52 *----------------------------------------------------------------------------
55 /*-----------------------------------------------------------------------------
56 * DEFINITIONS AND MACROS
58 *-----------------------------------------------------------------------------
62 #define MAX_CS_PER_CHANNEL 8 ///< Max CS per channel
63 /*----------------------------------------------------------------------------
64 * TYPEDEFS, STRUCTURES, ENUMS
66 *----------------------------------------------------------------------------
71 UINT16 Speed; ///< Dram speed in MHz
72 UINT8 Loads; ///< Number of Data Loads
73 UINT32 AddrTmg; ///< Address Timing value
74 UINT32 Odc; ///< Output Driver Compensation Value
79 UINT16 Speed; ///< Dram speed in MHz
80 UINT8 Loads; ///< Number of Data Loads
81 UINT32 AddrTmg; ///< Address Timing value
82 UINT32 Odc; ///< Output Driver Compensation Value
83 UINT8 Dimms; ///< Number of Dimms
86 /** MARDK Structure for RDIMMs*/
88 UINT16 Speed; ///< Dram speed in MHz
89 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
90 UINT32 AddrTmg; ///< Address Timing value
91 UINT16 RC2RC8; ///< RC2 and RC8 value //High byte: 1st pair value, Low byte: 2nd pair value
92 UINT8 Dimms; ///< Number of Dimms
97 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
98 UINT32 PhyRODTCSLow; ///< Fn2_9C 180
99 UINT32 PhyRODTCSHigh; ///< Fn2_9C 181
100 UINT32 PhyWODTCSLow; ///< Fn2_9C 182
101 UINT32 PhyWODTCSHigh; ///< Fn2_9C 183
102 UINT8 Dimms; ///< Number of Dimms
103 } ADV_PSCFG_ODT_ENTRY;
105 /** MARDK Structure for Write Levelization ODT*/
107 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
108 UINT8 PhyWrLvOdt[MAX_CS_PER_CHANNEL/2]; ///< WrLvOdt (Fn2_9C_0x08[11:8]) Value for each Dimm
109 UINT8 Dimms; ///< Number of Dimms
110 } ADV_R_PSCFG_WL_ODT_ENTRY;
112 /*----------------------------------------------------------------------------
113 * FUNCTIONS PROTOTYPE
115 *----------------------------------------------------------------------------
120 IN OUT MEM_DATA_STRUCT *MemData,
122 IN OUT CH_DEF_STRUCT *CurrentChannel
127 IN OUT MEM_DATA_STRUCT *MemData,
129 IN OUT CH_DEF_STRUCT *CurrentChannel
134 IN OUT MEM_DATA_STRUCT *MemData,
136 IN OUT CH_DEF_STRUCT *CurrentChannel
141 IN OUT MEM_DATA_STRUCT *MemData,
143 IN OUT CH_DEF_STRUCT *CurrentChannel
148 IN OUT MEM_DATA_STRUCT *MemData,
150 IN OUT CH_DEF_STRUCT *CurrentChannel
155 IN OUT MEM_DATA_STRUCT *MemData,
157 IN OUT CH_DEF_STRUCT *CurrentChannel
162 IN OUT MEM_DATA_STRUCT *MemData,
164 IN OUT CH_DEF_STRUCT *CurrentChannel
169 IN OUT MEM_DATA_STRUCT *MemData,
171 IN OUT CH_DEF_STRUCT *CurrentChannel
176 IN OUT MEM_DATA_STRUCT *MemData,
178 IN OUT CH_DEF_STRUCT *CurrentChannel
183 IN OUT MEM_DATA_STRUCT *MemData,
185 IN OUT CH_DEF_STRUCT *CurrentChannel
190 IN OUT MEM_DATA_STRUCT *MemData,
192 IN OUT CH_DEF_STRUCT *CurrentChannel
197 IN OUT MEM_DATA_STRUCT *MemData,
199 IN OUT CH_DEF_STRUCT *CurrentChannel
204 IN OUT MEM_DATA_STRUCT *MemData,
206 IN OUT CH_DEF_STRUCT *CurrentChannel
211 IN OUT MEM_DATA_STRUCT *MemData,
213 IN OUT CH_DEF_STRUCT *CurrentChannel
218 IN OUT MEM_DATA_STRUCT *MemData,
220 IN OUT CH_DEF_STRUCT *CurrentChannel
225 IN OUT MEM_DATA_STRUCT *MemData,
227 IN OUT CH_DEF_STRUCT *CurrentChannel
232 IN OUT MEM_DATA_STRUCT *MemData,
234 IN OUT CH_DEF_STRUCT *CurrentChannel
239 IN OUT MEM_DATA_STRUCT *MemData,
241 IN OUT CH_DEF_STRUCT *CurrentChannel
246 IN OUT MEM_DATA_STRUCT *MemData,
248 IN OUT CH_DEF_STRUCT *CurrentChannel
253 IN OUT MEM_DATA_STRUCT *MemData,
255 IN OUT CH_DEF_STRUCT *CurrentChannel
260 IN OUT MEM_DATA_STRUCT *MemData,
262 IN OUT CH_DEF_STRUCT *CurrentChannel
267 IN OUT MEM_DATA_STRUCT *MemData,
269 IN OUT CH_DEF_STRUCT *CurrentChannel
274 IN OUT MEM_DATA_STRUCT *MemData,
276 IN OUT CH_DEF_STRUCT *CurrentChannel
281 IN CH_DEF_STRUCT *CurrentChannel
286 IN OUT MEM_DATA_STRUCT *MemData,
288 IN OUT CH_DEF_STRUCT *CurrentChannel
292 MemRecNGetPsRankType (
293 IN CH_DEF_STRUCT *CurrentChannel
297 MemRecNGetPsCfgUDIMM3Nb (
298 IN OUT MEM_DATA_STRUCT *MemData,
300 IN OUT CH_DEF_STRUCT *CurrentChannel
304 MemRecNGetPsCfgSODIMM3Nb (
305 IN OUT MEM_DATA_STRUCT *MemData,
307 IN OUT CH_DEF_STRUCT *CurrentChannel
311 MemRecNGetPsCfgRDIMM3Nb (
312 IN OUT MEM_DATA_STRUCT *MemData,
314 IN OUT CH_DEF_STRUCT *CurrentChannel