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