Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / model / infineon / c / src / print_dimm.h
CommitLineData
86530b38
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: print_dimm.h
5* Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
6* 4150 Network Circle, Santa Clara, California 95054, U.S.A.
7*
8* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9*
10* This program is free software; you can redistribute it and/or modify
11* it under the terms of the GNU General Public License as published by
12* the Free Software Foundation; version 2 of the License.
13*
14* This program is distributed in the hope that it will be useful,
15* but WITHOUT ANY WARRANTY; without even the implied warranty of
16* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17* GNU General Public License for more details.
18*
19* You should have received a copy of the GNU General Public License
20* along with this program; if not, write to the Free Software
21* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22*
23* For the avoidance of doubt, and except that if any non-GPL license
24* choice is available it will apply instead, Sun elects to use only
25* the General Public License version 2 (GPLv2) at this time for any
26* software where a choice of GPL license versions is made
27* available with the language indicating that GPLv2 or any later version
28* may be used, or where a choice of which version of the GPL is applied is
29* otherwise unspecified.
30*
31* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
32* CA 95054 USA or visit www.sun.com if you need additional information or
33* have any questions.
34*
35*
36* ========== Copyright Header End ============================================
37*/
38#include "vcsuser.h"
39#include <malloc.h>
40#include <strings.h>
41#include <stdlib.h>
42
43
44void print_dimm() {
45
46// 1st line prints part,channel,low/high rank,rank side
47// 2nd line prints dimm size,# of dimms
48// 3rd line prints partial bank
49
50 int i=(mc_scan_plusargs("X8") !=(char *)NULL) ? 1 : 0;
51 int j=(mc_scan_plusargs("SNG_CHANNEL") !=(char *)NULL) ? 1 : 0;
52 int k=(mc_scan_plusargs("RANK_LOW") !=(char *)NULL) ? 1 : 0;
53 int l=(mc_scan_plusargs("STACK_DIMM") !=(char *)NULL) ? 1 : 0;
54 int m=(mc_scan_plusargs("DIMM_SIZE_256") !=(char *)NULL) ? 256 : (
55 (mc_scan_plusargs("DIMM_SIZE_512") !=(char *)NULL) ? 512 : (
56 (mc_scan_plusargs("DIMM_SIZE_1G") !=(char *)NULL) ? 1024 : 2048 ) );
57 int n=(mc_scan_plusargs("8_FBDIMMS") !=(char *)NULL) ? 8 : (
58 (mc_scan_plusargs("7_FBDIMMS") !=(char *)NULL) ? 7 : (
59 (mc_scan_plusargs("6_FBDIMMS") !=(char *)NULL) ? 6 : (
60 (mc_scan_plusargs("5_FBDIMMS") !=(char *)NULL) ? 5 : (
61 (mc_scan_plusargs("4_FBDIMMS") !=(char *)NULL) ? 4 : (
62 (mc_scan_plusargs("3_FBDIMMS") !=(char *)NULL) ? 3 : (
63 (mc_scan_plusargs("2_FBDIMMS") !=(char *)NULL) ? 2 : 1 ) ) ) ) ) );
64
65 char *a=(char *)NULL; a=(char *)malloc(10000*sizeof(char));
66 a = strcat(a,(const char *)"\n");
67 a = strcat(a,(const char *)"**************************************************************************************************************************\n");
68 a = strcat(a,(const char *)"**************************************************************************************************************************\n");
69 a = strcat(a,(const char *)"\n");
70 a = i ? strcat(a,(const char *)" # # ##### "):
71 strcat(a,(const char *)" # # # ");
72 a = j ? strcat(a,(const char *)" ##### # # ##### "):
73 strcat(a,(const char *)"###### # # # # ");
74 a = k ? strcat(a,(const char *)"# ##### # # "):
75 strcat(a,(const char *)"# # ### ##### # # ");
76 a = l ? strcat(a,(const char *)" ##### #####\n"):
77 strcat(a,(const char *)" # #####\n");
78
79 a = i ? strcat(a,(const char *)" # # # # "):
80 strcat(a,(const char *)" # # # # ");
81 a = j ? strcat(a,(const char *)"# # ## # # # "):
82 strcat(a,(const char *)"# # # # # # # ");
83 a = k ? strcat(a,(const char *)"# # # # # # "):
84 strcat(a,(const char *)"# # # # # # # ");
85 a = l ? strcat(a,(const char *)"# # # #\n"):
86 strcat(a,(const char *)" ## # #\n");
87
88 a = i ? strcat(a,(const char *)" # # # # "):
89 strcat(a,(const char *)" # # # # ");
90 a = j ? strcat(a,(const char *)"# # # # # "):
91 strcat(a,(const char *)"# # # # # # # ");
92 a = k ? strcat(a,(const char *)"# # # # # # "):
93 strcat(a,(const char *)"# # # # # # ");
94 a = l ? strcat(a,(const char *)" # #\n"):
95 strcat(a,(const char *)" # # #\n");
96
97 a = i ? strcat(a,(const char *)" # ##### "):
98 strcat(a,(const char *)" # # # ");
99 a = j ? strcat(a,(const char *)" ##### # # # # #### "):
100 strcat(a,(const char *)"# # # # # # # ");
101 a = k ? strcat(a,(const char *)"# # # # # # "):
102 strcat(a,(const char *)"####### # # #### ####### ");
103 a = l ? strcat(a,(const char *)" ##### #####\n"):
104 strcat(a,(const char *)" # #####\n");
105
106 a = i ? strcat(a,(const char *)" # # # # "):
107 strcat(a,(const char *)" # # ####### ");
108 a = j ? strcat(a,(const char *)" # # # # # # "):
109 strcat(a,(const char *)"# # # # ####### # ");
110 a = k ? strcat(a,(const char *)"# # # # # # "):
111 strcat(a,(const char *)"# # # # # # # ");
112 a = l ? strcat(a,(const char *)"# #\n"):
113 strcat(a,(const char *)" # #\n");
114
115 a = i ? strcat(a,(const char *)" # # # # "):
116 strcat(a,(const char *)" # # # ");
117 a = j ? strcat(a,(const char *)"# # # ## # # "):
118 strcat(a,(const char *)"# # # # # # # ");
119 a = k ? strcat(a,(const char *)"# # # # # # "):
120 strcat(a,(const char *)"# # # # # # # ");
121 a = l ? strcat(a,(const char *)"# # #\n"):
122 strcat(a,(const char *)" # # #\n");
123
124 a = i ? strcat(a,(const char *)" # # ##### "):
125 strcat(a,(const char *)" # # # ");
126 a = j ? strcat(a,(const char *)" ##### # # ##### "):
127 strcat(a,(const char *)"###### ##### # # ####### ");
128 a = k ? strcat(a,(const char *)"####### ##### ## ## "):
129 strcat(a,(const char *)"# # ### ##### # # ");
130 a = l ? strcat(a,(const char *)"####### #####\n"):
131 strcat(a,(const char *)" ##### #####\n");
132
133 a = strcat(a,(const char *)"\n\n");
134
135 a = (m==256) ? strcat(a,(const char *)" ##### ####### ##### # # ###### "): (
136 (m==512) ? strcat(a,(const char *)" ####### # ##### # # ###### "): (
137 (m==1024) ? strcat(a,(const char *)" # ##### ###### "): (
138 strcat(a,(const char *)" ##### ##### ###### ") ) ) );
139 a = (n==8) ? strcat(a,(const char *)" ##### ###### ### # # # # #####\n"): (
140 (n==7) ? strcat(a,(const char *)"####### ###### ### # # # # #####\n"): (
141 (n==6) ? strcat(a,(const char *)" ##### ###### ### # # # # #####\n"): (
142 (n==5) ? strcat(a,(const char *)"####### ###### ### # # # # #####\n"): (
143 (n==4) ? strcat(a,(const char *)"# ###### ### # # # # #####\n"): (
144 (n==3) ? strcat(a,(const char *)" ##### ###### ### # # # # #####\n"): (
145 (n==2) ? strcat(a,(const char *)" ##### ###### ### # # # # #####\n"): (
146 strcat(a,(const char *)" # ###### ### # # # #\n") ) ) ) ) ) ) );
147
148 a = (m==256) ? strcat(a,(const char *)" # # # # # ## ## # # "): (
149 (m==512) ? strcat(a,(const char *)" # ## # # ## ## # # "): (
150 (m==1024) ? strcat(a,(const char *)" ## # # # # "): (
151 strcat(a,(const char *)" # # # # # # ") ) ) );
152 a = (n==8) ? strcat(a,(const char *)"# # # # # ## ## ## ## # #\n"): (
153 (n==7) ? strcat(a,(const char *)"# # # # # ## ## ## ## # #\n"): (
154 (n==6) ? strcat(a,(const char *)"# # # # # ## ## ## ## # #\n"): (
155 (n==5) ? strcat(a,(const char *)"# # # # ## ## ## ## # #\n"): (
156 (n==4) ? strcat(a,(const char *)"# # # # # ## ## ## ## # #\n"): (
157 (n==3) ? strcat(a,(const char *)"# # # # # ## ## ## ## # #\n"): (
158 (n==2) ? strcat(a,(const char *)"# # # # # ## ## ## ## # #\n"): (
159 strcat(a,(const char *)" ## # # # ## ## ## ##\n") ) ) ) ) ) ) );
160
161 a = (m==256) ? strcat(a,(const char *)" # # # # # # # # # "): (
162 (m==512) ? strcat(a,(const char *)" # # # # # # # # # # "): (
163 (m==1024) ? strcat(a,(const char *)" # # # # # "): (
164 strcat(a,(const char *)" # # # # ") ) ) );
165 a = (n==8) ? strcat(a,(const char *)"# # # # # # # # # # # # # #\n"): (
166 (n==7) ? strcat(a,(const char *)" # # # # # # # # # # # # #\n"): (
167 (n==6) ? strcat(a,(const char *)"# # # # # # # # # # # # #\n"): (
168 (n==5) ? strcat(a,(const char *)"# # # # # # # # # # # # #\n"): (
169 (n==4) ? strcat(a,(const char *)"# # # # # # # # # # # # # #\n"): (
170 (n==3) ? strcat(a,(const char *)" # # # # # # # # # # # # #\n"): (
171 (n==2) ? strcat(a,(const char *)" # # # # # # # # # # # # #\n"): (
172 strcat(a,(const char *)" # # # # # # # # # # # # #\n") ) ) ) ) ) ) );
173
174 a = (m==256) ? strcat(a,(const char *)" ##### ###### ###### # # # ###### "): (
175 (m==512) ? strcat(a,(const char *)" ###### # ##### # # # ###### "): (
176 (m==1024) ? strcat(a,(const char *)" # # #### ###### "): (
177 strcat(a,(const char *)" ##### # #### ###### ") ) ) );
178 a = (n==8) ? strcat(a,(const char *)" ##### # # # # # # # # # #####\n"): (
179 (n==7) ? strcat(a,(const char *)" # # # # # # # # # # #####\n"): (
180 (n==6) ? strcat(a,(const char *)"###### # # # # # # # # # #####\n"): (
181 (n==5) ? strcat(a,(const char *)"###### # # # # # # # # # #####\n"): (
182 (n==4) ? strcat(a,(const char *)"# # # # # # # # # # # #####\n"): (
183 (n==3) ? strcat(a,(const char *)" ##### # # # # # # # # # #####\n"): (
184 (n==2) ? strcat(a,(const char *)" ##### # # # # # # # # # #####\n"): (
185 strcat(a,(const char *)" # # # # # # # # # #\n") ) ) ) ) ) ) );
186
187 a = (m==256) ? strcat(a,(const char *)" # # # # # # # # "): (
188 (m==512) ? strcat(a,(const char *)" # # # # # # # "): (
189 (m==1024) ? strcat(a,(const char *)" # # # # # "): (
190 strcat(a,(const char *)" # # # # # ") ) ) );
191 a = (n==8) ? strcat(a,(const char *)"# # # # # # # # # #\n"): (
192 (n==7) ? strcat(a,(const char *)" # # # # # # # # #\n"): (
193 (n==6) ? strcat(a,(const char *)"# # # # # # # # # #\n"): (
194 (n==5) ? strcat(a,(const char *)" # # # # # # # # #\n"): (
195 (n==4) ? strcat(a,(const char *)"####### # # # # # # # #\n"): (
196 (n==3) ? strcat(a,(const char *)" # # # # # # # # #\n"): (
197 (n==2) ? strcat(a,(const char *)"# # # # # # # # #\n"): (
198 strcat(a,(const char *)" # # # # # # # #\n") ) ) ) ) ) ) );
199
200 a = (m==256) ? strcat(a,(const char *)" # # # # # # # # # "): (
201 (m==512) ? strcat(a,(const char *)" # # # # # # # # "): (
202 (m==1024) ? strcat(a,(const char *)" # # # # # "): (
203 strcat(a,(const char *)" # # # # # ") ) ) );
204 a = (n==8) ? strcat(a,(const char *)"# # # # # # # # # # #\n"): (
205 (n==7) ? strcat(a,(const char *)" # # # # # # # # # #\n"): (
206 (n==6) ? strcat(a,(const char *)"# # # # # # # # # # #\n"): (
207 (n==5) ? strcat(a,(const char *)"# # # # # # # # # # #\n"): (
208 (n==4) ? strcat(a,(const char *)" # # # # # # # # # #\n"): (
209 (n==3) ? strcat(a,(const char *)"# # # # # # # # # # #\n"): (
210 (n==2) ? strcat(a,(const char *)"# # # # # # # # # #\n"): (
211 strcat(a,(const char *)" # # # # # # # #\n") ) ) ) ) ) ) );
212
213 a = (m==256) ? strcat(a,(const char *)" ####### ##### ##### # # ###### "): (
214 (m==512) ? strcat(a,(const char *)" ##### ##### ####### # # ###### "): (
215 (m==1024) ? strcat(a,(const char *)" ##### ##### ###### "): (
216 strcat(a,(const char *)" ####### ##### ###### ") ) ) );
217 a = (n==8) ? strcat(a,(const char *)" ##### ###### ### # # # # #####\n"): (
218 (n==7) ? strcat(a,(const char *)" # ###### ### # # # # #####\n"): (
219 (n==6) ? strcat(a,(const char *)" ##### ###### ### # # # # #####\n"): (
220 (n==5) ? strcat(a,(const char *)" ##### ###### ### # # # # #####\n"): (
221 (n==4) ? strcat(a,(const char *)" # ###### ### # # # # #####\n"): (
222 (n==3) ? strcat(a,(const char *)" ##### ###### ### # # # # #####\n"): (
223 (n==2) ? strcat(a,(const char *)"####### ###### ### # # # # #####\n"): (
224 strcat(a,(const char *)" ##### ###### ### # # # #\n") ) ) ) ) ) ) );
225
226/*
227 a = strcat(a,(const char *)"\n");
228 io_printf((char *)"%s",a);
229 a=(char *)"";
230 char *c=(char *)NULL;
231 c=mc_scan_plusargs("bank_set_mask=");
232 if (c && *c != 'f') {
233 long x=strtol(c,0,16);
234 io_printf((char *)"\n");
235 switch(x){
236 case 1: system("banner \" PB 01\""); break;
237 case 2: system("banner \" PB 23\""); break;
238 case 4: system("banner \" PB 45\""); break;
239 case 8: system("banner \" PB 67\""); break;
240 case 3: system("banner \" PB 01 23\""); break;
241 case 5: system("banner \" PB 01 45\""); break;
242 case 9: system("banner \" PB 01 67\""); break;
243 case 6: system("banner \" PB 23 45\""); break;
244 case 0xa: system("banner \" PB 23 67\""); break;
245 case 0xc: system("banner \" PB 45 67\""); break;
246 default: break;
247 }
248 }
249*/
250
251 a = strcat(a,(const char *)"\n");
252 a = strcat(a,(const char *)"**************************************************************************************************************************\n");
253 a = strcat(a,(const char *)"**************************************************************************************************************************\n");
254 a = strcat(a,(const char *)"\n");
255 io_printf((char *)"%s",a);
256 free(a);
257}