xref: /openbmc/u-boot/post/tests.c (revision dd4671cb)
1 /*
2  * (C) Copyright 2002
3  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4  *
5  * SPDX-License-Identifier:	GPL-2.0+
6  */
7 
8 #include <common.h>
9 
10 #include <post.h>
11 
12 extern int ocm_post_test (int flags);
13 extern int cache_post_test (int flags);
14 extern int watchdog_post_test (int flags);
15 extern int i2c_post_test (int flags);
16 extern int rtc_post_test (int flags);
17 extern int memory_post_test (int flags);
18 extern int cpu_post_test (int flags);
19 extern int fpu_post_test (int flags);
20 extern int uart_post_test (int flags);
21 extern int ether_post_test (int flags);
22 extern int spi_post_test (int flags);
23 extern int usb_post_test (int flags);
24 extern int spr_post_test (int flags);
25 extern int sysmon_post_test (int flags);
26 extern int dsp_post_test (int flags);
27 extern int codec_post_test (int flags);
28 extern int ecc_post_test (int flags);
29 extern int flash_post_test(int flags);
30 
31 extern int dspic_init_post_test (int flags);
32 extern int dspic_post_test (int flags);
33 extern int gdc_post_test (int flags);
34 extern int fpga_post_test (int flags);
35 extern int lwmon5_watchdog_post_test(int flags);
36 extern int sysmon1_post_test(int flags);
37 extern int coprocessor_post_test(int flags);
38 extern int led_post_test(int flags);
39 extern int button_post_test(int flags);
40 extern int memory_regions_post_test(int flags);
41 
42 extern int sysmon_init_f (void);
43 
44 extern void sysmon_reloc (void);
45 
46 
47 struct post_test post_list[] =
48 {
49 #if CONFIG_POST & CONFIG_SYS_POST_OCM
50     {
51 	"OCM test",
52 	"ocm",
53 	"This test checks on chip memory (OCM).",
54 	POST_ROM | POST_ALWAYS | POST_PREREL | POST_CRITICAL | POST_STOP,
55 	&ocm_post_test,
56 	NULL,
57 	NULL,
58 	CONFIG_SYS_POST_OCM
59     },
60 #endif
61 #if CONFIG_POST & CONFIG_SYS_POST_CACHE
62     {
63 	"Cache test",
64 	"cache",
65 	"This test verifies the CPU cache operation.",
66 	POST_RAM | POST_ALWAYS,
67 	&cache_post_test,
68 	NULL,
69 	NULL,
70 	CONFIG_SYS_POST_CACHE
71     },
72 #endif
73 #if CONFIG_POST & CONFIG_SYS_POST_WATCHDOG
74 #if defined(CONFIG_POST_WATCHDOG)
75 	CONFIG_POST_WATCHDOG,
76 #else
77     {
78 	"Watchdog timer test",
79 	"watchdog",
80 	"This test checks the watchdog timer.",
81 	POST_RAM | POST_POWERON | POST_SLOWTEST | POST_MANUAL | POST_REBOOT,
82 	&watchdog_post_test,
83 	NULL,
84 	NULL,
85 	CONFIG_SYS_POST_WATCHDOG
86     },
87 #endif
88 #endif
89 #if CONFIG_POST & CONFIG_SYS_POST_I2C
90     {
91 	"I2C test",
92 	"i2c",
93 	"This test verifies the I2C operation.",
94 	POST_RAM | POST_ALWAYS,
95 	&i2c_post_test,
96 	NULL,
97 	NULL,
98 	CONFIG_SYS_POST_I2C
99     },
100 #endif
101 #if CONFIG_POST & CONFIG_SYS_POST_RTC
102     {
103 	"RTC test",
104 	"rtc",
105 	"This test verifies the RTC operation.",
106 	POST_RAM | POST_SLOWTEST | POST_MANUAL,
107 	&rtc_post_test,
108 	NULL,
109 	NULL,
110 	CONFIG_SYS_POST_RTC
111     },
112 #endif
113 #if CONFIG_POST & CONFIG_SYS_POST_MEMORY
114     {
115 	"Memory test",
116 	"memory",
117 	"This test checks RAM.",
118 	POST_ROM | POST_POWERON | POST_SLOWTEST | POST_PREREL,
119 	&memory_post_test,
120 	NULL,
121 	NULL,
122 	CONFIG_SYS_POST_MEMORY
123     },
124 #endif
125 #if CONFIG_POST & CONFIG_SYS_POST_CPU
126     {
127 	"CPU test",
128 	"cpu",
129 	"This test verifies the arithmetic logic unit of"
130 	" CPU.",
131 	POST_RAM | POST_ALWAYS,
132 	&cpu_post_test,
133 	NULL,
134 	NULL,
135 	CONFIG_SYS_POST_CPU
136     },
137 #endif
138 #if CONFIG_POST & CONFIG_SYS_POST_FPU
139     {
140 	"FPU test",
141 	"fpu",
142 	"This test verifies the arithmetic logic unit of"
143 	" FPU.",
144 	POST_RAM | POST_ALWAYS,
145 	&fpu_post_test,
146 	NULL,
147 	NULL,
148 	CONFIG_SYS_POST_FPU
149     },
150 #endif
151 #if CONFIG_POST & CONFIG_SYS_POST_UART
152 #if defined(CONFIG_POST_UART)
153 	CONFIG_POST_UART,
154 #else
155     {
156 	"UART test",
157 	"uart",
158 	"This test verifies the UART operation.",
159 	POST_RAM | POST_SLOWTEST | POST_MANUAL,
160 	&uart_post_test,
161 	NULL,
162 	NULL,
163 	CONFIG_SYS_POST_UART
164     },
165 #endif /* CONFIG_POST_UART */
166 #endif
167 #if CONFIG_POST & CONFIG_SYS_POST_ETHER
168     {
169 	"ETHERNET test",
170 	"ethernet",
171 	"This test verifies the ETHERNET operation.",
172 	POST_RAM | POST_ALWAYS,
173 	&ether_post_test,
174 	NULL,
175 	NULL,
176 	CONFIG_SYS_POST_ETHER
177     },
178 #endif
179 #if CONFIG_POST & CONFIG_SYS_POST_USB
180     {
181 	"USB test",
182 	"usb",
183 	"This test verifies the USB operation.",
184 	POST_RAM | POST_ALWAYS,
185 	&usb_post_test,
186 	NULL,
187 	NULL,
188 	CONFIG_SYS_POST_USB
189     },
190 #endif
191 #if CONFIG_POST & CONFIG_SYS_POST_SPR
192     {
193 	"SPR test",
194 	"spr",
195 	"This test checks SPR contents.",
196 	POST_RAM | POST_ALWAYS,
197 	&spr_post_test,
198 	NULL,
199 	NULL,
200 	CONFIG_SYS_POST_SPR
201     },
202 #endif
203 #if CONFIG_POST & CONFIG_SYS_POST_SYSMON
204     {
205 	"SYSMON test",
206 	"sysmon",
207 	"This test monitors system hardware.",
208 	POST_RAM | POST_ALWAYS,
209 	&sysmon_post_test,
210 	&sysmon_init_f,
211 	&sysmon_reloc,
212 	CONFIG_SYS_POST_SYSMON
213     },
214 #endif
215 #if CONFIG_POST & CONFIG_SYS_POST_DSP
216     {
217 	"DSP test",
218 	"dsp",
219 	"This test checks any connected DSP(s).",
220 	POST_RAM | POST_ALWAYS,
221 	&dsp_post_test,
222 	NULL,
223 	NULL,
224 	CONFIG_SYS_POST_DSP
225     },
226 #endif
227 #if CONFIG_POST & CONFIG_SYS_POST_CODEC
228     {
229 	"CODEC test",
230 	"codec",
231 	"This test checks any connected codec(s).",
232 	POST_RAM | POST_MANUAL,
233 	&codec_post_test,
234 	NULL,
235 	NULL,
236 	CONFIG_SYS_POST_CODEC
237     },
238 #endif
239 #if CONFIG_POST & CONFIG_SYS_POST_ECC
240     {
241 	"ECC test",
242 	"ecc",
243 	"This test checks the ECC facility of memory.",
244 	POST_ROM | POST_ALWAYS | POST_PREREL,
245 	&ecc_post_test,
246 	NULL,
247 	NULL,
248 	CONFIG_SYS_POST_ECC
249     },
250 #endif
251 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC1
252 	CONFIG_POST_BSPEC1,
253 #endif
254 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC2
255 	CONFIG_POST_BSPEC2,
256 #endif
257 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC3
258 	CONFIG_POST_BSPEC3,
259 #endif
260 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC4
261 	CONFIG_POST_BSPEC4,
262 #endif
263 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC5
264 	CONFIG_POST_BSPEC5,
265 #endif
266 #if CONFIG_POST & CONFIG_SYS_POST_COPROC
267     {
268 	"Coprocessors communication test",
269 	"coproc_com",
270 	"This test checks communication with coprocessors.",
271 	POST_RAM | POST_ALWAYS | POST_CRITICAL,
272 	&coprocessor_post_test,
273 	NULL,
274 	NULL,
275 	CONFIG_SYS_POST_COPROC
276     },
277 #endif
278 #if CONFIG_POST & CONFIG_SYS_POST_FLASH
279     {
280 	"Parallel NOR flash test",
281 	"flash",
282 	"This test verifies parallel flash operations.",
283 	POST_RAM | POST_SLOWTEST | POST_MANUAL,
284 	&flash_post_test,
285 	NULL,
286 	NULL,
287 	CONFIG_SYS_POST_FLASH
288     },
289 #endif
290 #if CONFIG_POST & CONFIG_SYS_POST_MEM_REGIONS
291     {
292 	"Memory regions test",
293 	"mem_regions",
294 	"This test checks regularly placed regions of the RAM.",
295 	POST_ROM | POST_SLOWTEST | POST_PREREL,
296 	&memory_regions_post_test,
297 	NULL,
298 	NULL,
299 	CONFIG_SYS_POST_MEM_REGIONS
300     },
301 #endif
302 };
303 
304 unsigned int post_list_size = ARRAY_SIZE(post_list);
305