summaryrefslogtreecommitdiff
path: root/src/vendorcode/amd/agesa/f10/Proc/Mem/Tech/DDR2/mtspd2.h
blob: 5ed8c32bc8c368603b48f6eba2f5f5371bf9be0c (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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
/**
 * @file
 *
 * mtspd2.h
 *
 * Technology SPD support for DDR2
 *
 * @xrefitem bom "File Content Label" "Release Content"
 * @e project: AGESA
 * @e sub-project: (Mem/Tech/DDR2)
 * @e \$Revision: 44323 $ @e \$Date: 2010-12-22 01:24:58 -0700 (Wed, 22 Dec 2010) $
 *
 **/
/*****************************************************************************
  *
  * Copyright (c) 2011, Advanced Micro Devices, Inc.
  * All rights reserved.
  * 
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
  *     * Redistributions of source code must retain the above copyright
  *       notice, this list of conditions and the following disclaimer.
  *     * Redistributions in binary form must reproduce the above copyright
  *       notice, this list of conditions and the following disclaimer in the
  *       documentation and/or other materials provided with the distribution.
  *     * Neither the name of Advanced Micro Devices, Inc. nor the names of 
  *       its contributors may be used to endorse or promote products derived 
  *       from this software without specific prior written permission.
  * 
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  * 
  * ***************************************************************************
  *
 */

#ifndef _MTSPD2_H_
#define _MTSPD2_H_

/*----------------------------------------------------------------------------
 *   Mixed (DEFINITIONS AND MACROS / TYPEDEFS, STRUCTURES, ENUMS)
 *
 *----------------------------------------------------------------------------
 */

/*-----------------------------------------------------------------------------
 *                         DEFINITIONS AND MACROS
 *
 *-----------------------------------------------------------------------------
 */

/*===============================================================================
 *   Jedec DDR II
 *===============================================================================
 */
#define SPD_TYPE         2              /* SPD byte read location */
#define JED_DDR_SDRAM     7              /* Jedec defined bit field */
#define JED_DDR2_SDRAM    8              /* Jedec defined bit field */

#define SPD_DIMM_TYPE    20
#define SPD_ATTRIB       21
#define JED_DIF_CK_MSK   0x20            /* Differential Clock Input */
#define JED_REG_ADC_MSK  0x11            /* Registered Address/Control */
#define JED_PROBE_MSK    0x40            /* Analysis Probe installed */
#define JED_SODIMM       0x04            /* SO-DIMM */
#define SPD_DEV_ATTRIB   22
#define SPD_EDC_TYPE     11
#define JED_ECC          2
#define JED_ADRC_PAR     4
#define SPD_ROW_SZ       3
#define SPD_COL_SZ       4
#define SPD_L_BANKS      17              /* number of [logical] banks on each device */
#define SPD_DM_BANKS     5               /* number of physical banks on dimm */
#define SP_DPL_BIT       4               /*  Dram package bit */
#define SPD_BANK_SZ      31              /* capacity of physical bank */
#define SPD_DEV_WIDTH    13
#define SPD_CAS_LAT      18
#define SPD_TRP         27
#define SPD_TRRD        28
#define SPD_TRCD        29
#define SPD_TRAS        30
#define SPD_TWR         36
#define SPD_TWTR        37
#define SPD_TRTP        38
#define SPD_TRC         41
#define SPD_TRFC        42
#define SPD_CHECKSUM    63
#define SPD_MAN_DATE_YR   93             /* Module Manufacturing Year (BCD) */

#define SPD_MAN_DATE_WK   94             /* Module Manufacturing Week (BCD) */

/*-----------------------------
 * Jedec DDR II related equates
 *-----------------------------
 */
#define M_YEAR_06         0x06           /*  Manufacturing Year BCD encoding of 2006 - 06d */
#define M_WEEK_24         0x24           /*  Manufacturing Week BCD encoding of June - 24d */

#define J_MIN           0              /* j loop constraint. 1=CL 2.0 T */
#define J_MAX           5              /* j loop constraint. 5=CL 7.0 T */
#define K_MIN           1              /* k loop constraint. 1=200 MHz */
#define K_MAX           5              /* k loop constraint. 5=533 MHz */
#define CL_DEF          2              /* Default value for failsafe operation. 2=CL 4.0 T */
#define T_DEF           1              /* Default value for failsafe operation. 1=5ns (cycle time) */


#define BIAS_TCL_T       1
#define BIAS_TRP_T       3              /* bias to convert bus clocks to bit field value */
#define BIAS_TRRD_T      2
#define BIAS_TRCD_T      3
#define BIAS_TRAS_T      3
#define BIAS_TRC_T       11
#define BIAS_TRTP_T      1
#define BIAS_TWR_T       3
#define BIAS_TWTR_T      0
#define BIAS_TFAW_T      7

#define MIN_TRP_T        3                   /* min programmable value in busclocks */
#define MAX_TRP_T        6                   /* max programmable value in busclocks */
#define MIN_TRRD_T       2
#define MAX_TRRD_T       5
#define MIN_TRCD_T       3
#define MAX_TRCD_T       6
#define MIN_TRAS_T       5
#define MAX_TRAS_T       18
#define MIN_TRC_T        11
#define MAX_TRC_T        26
#define MIN_TRTP_T       2
#define MAX_TRTP_T       4
#define MIN_TWR_T        3
#define MAX_TWR_T        6
#define MIN_TWTR_T       1
#define MAX_TWTR_T       3

/* DDR2-1066 support */
#define BIAS_TRCD_T_1066      5
#define BIAS_TRAS_T_1066      15
#define BIAS_TRRD_T_1066      4
#define BIAS_TWR_T_1066       4
#define BIAS_TRP_T_1066       5
#define BIAS_TWTR_T_1066      4

#define MIN_TRCD_T_1066       5
#define MAX_TRCD_T_1066       12
#define MIN_TRAS_T_1066       15
#define MAX_TRAS_T_1066       30
#define MIN_TRC_T_1066        11
#define MAX_TRC_T_1066        42
#define MIN_TRRD_T_1066       4
#define MAX_TRRD_T_1066       7
#define MIN_TWR_T_1066        5
#define MAX_TWR_T_1066        8
#define MIN_TRP_T_1066        5
#define MAX_TRP_T_1066        12
#define MIN_TWTR_T_1066       4
#define MAX_TWTR_T_1066       7


/*----------------------------------------------------------------------------
 *                         TYPEDEFS, STRUCTURES, ENUMS
 *
 *----------------------------------------------------------------------------
 */

/*----------------------------------------------------------------------------
 *                           FUNCTIONS PROTOTYPE
 *
 *----------------------------------------------------------------------------
 */


#endif  /* _MTSPD2_H_ */