Unify DIMM SPD addressing. For Geode, change the
[coreboot.git] / src / mainboard / amd / tilapia_fam10 / spd_addr.h
1 /*
2  * This file is part of the coreboot project.
3  *
4  * Copyright (C) 2010 Advanced Micro Devices, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; version 2 of the License.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
18  */
19
20 /**
21  * This file defines the SPD addresses for the mainboard. Must be included in
22  * romstage.c
23  */
24
25 #define RC00 0
26 #define RC01 1
27 #define RC02 2
28 #define RC03 3
29 #define RC04 4
30 #define RC05 5
31 #define RC06 6
32 #define RC07 7
33 #define RC08 8
34 #define RC09 9
35 #define RC10 10
36 #define RC11 11
37 #define RC12 12
38 #define RC13 13
39 #define RC14 14
40 #define RC15 15
41 #define RC16 16
42 #define RC17 17
43 #define RC18 18
44 #define RC19 19
45 #define RC20 20
46 #define RC21 21
47 #define RC22 22
48 #define RC23 23
49 #define RC24 24
50 #define RC25 25
51 #define RC26 26
52 #define RC27 27
53 #define RC28 28
54 #define RC29 29
55 #define RC30 30
56 #define RC31 31
57
58 #define RC32 32
59 #define RC33 33
60 #define RC34 34
61 #define RC35 35
62 #define RC36 36
63 #define RC37 37
64 #define RC38 38
65 #define RC39 39
66 #define RC40 40
67 #define RC41 41
68 #define RC42 42
69 #define RC43 43
70 #define RC44 44
71 #define RC45 45
72 #define RC46 46
73 #define RC47 47
74 #define RC48 48
75 #define RC49 49
76 #define RC50 50
77 #define RC51 51
78 #define RC52 52
79 #define RC53 53
80 #define RC54 54
81 #define RC55 55
82 #define RC56 56
83 #define RC57 57
84 #define RC58 58
85 #define RC59 59
86 #define RC60 60
87 #define RC61 61
88 #define RC62 62
89 #define RC63 63
90
91
92 #define DIMM0 0x50
93 #define DIMM1 0x51
94 #define DIMM2 0x52
95 #define DIMM3 0x53
96 #define DIMM4 0x54
97 #define DIMM5 0x55
98 #define DIMM6 0x56
99 #define DIMM7 0x57
100
101
102 static const u8 spd_addr[] = {
103         //first node
104         RC00, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
105 #if CONFIG_MAX_PHYSICAL_CPUS > 1
106         //second node
107         RC01, DIMM0, DIMM2, DIMM4, DIMM6, DIMM1, DIMM3, DIMM5, DIMM7,
108 #endif
109 #if CONFIG_MAX_PHYSICAL_CPUS > 2
110         // third node
111         RC02, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
112         // forth node
113         RC03, DIMM0, DIMM2, DIMM4, DIMM6, DIMM1, DIMM3, DIMM5, DIMM7,
114 #endif
115 #if CONFIG_MAX_PHYSICAL_CPUS > 4
116         RC04, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
117         RC05, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
118 #endif
119 #if CONFIG_MAX_PHYSICAL_CPUS > 6
120         RC06, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
121         RC07, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
122 #endif
123 #if CONFIG_MAX_PHYSICAL_CPUS > 8
124         RC08, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
125         RC09, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
126         RC10, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
127         RC11, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
128 #endif
129 #if CONFIG_MAX_PHYSICAL_CPUS > 12
130         RC12, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
131         RC13, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
132         RC14, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
133         RC15, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
134 #endif
135 #if CONFIG_MAX_PHYSICAL_CPUS > 16
136         RC16, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
137         RC17, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
138         RC18, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
139         RC19, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
140 #endif
141 #if CONFIG_MAX_PHYSICAL_CPUS > 20
142         RC20, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
143         RC21, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
144         RC22, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
145         RC23, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
146 #endif
147 #if CONFIG_MAX_PHYSICAL_CPUS > 24
148         RC24, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
149         RC25, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
150         RC26, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
151         RC27, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
152         RC28, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
153         RC29, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
154         RC30, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
155         RC31, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
156 #endif
157 #if CONFIG_MAX_PHYSICAL_CPUS > 32
158         RC32, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
159         RC33, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
160         RC34, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
161         RC35, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
162         RC36, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
163         RC37, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
164         RC38, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
165         RC39, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
166         RC40, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
167         RC41, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
168         RC42, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
169         RC43, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
170         RC44, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
171         RC45, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
172         RC46, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
173         RC47, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
174 #endif
175 #if CONFIG_MAX_PHYSICAL_CPUS > 48
176         RC48, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
177         RC49, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
178         RC50, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
179         RC51, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
180         RC52, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
181         RC53, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
182         RC54, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
183         RC55, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
184         RC56, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
185         RC57, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
186         RC58, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
187         RC59, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
188         RC60, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
189         RC61, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
190         RC62, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
191         RC63, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,
192 #endif
193 };
194