Merge branch 'master' of git://git.denx.de/u-boot-sunxi
[oweals/u-boot.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,
177         &ether_post_test,
178         NULL,
179         NULL,
180         CONFIG_SYS_POST_ETHER
181     },
182 #endif
183 #if CONFIG_POST & CONFIG_SYS_POST_USB
184     {
185         "USB test",
186         "usb",
187         "This test verifies the USB operation.",
188         POST_RAM | POST_ALWAYS,
189         &usb_post_test,
190         NULL,
191         NULL,
192         CONFIG_SYS_POST_USB
193     },
194 #endif
195 #if CONFIG_POST & CONFIG_SYS_POST_SPR
196     {
197         "SPR test",
198         "spr",
199         "This test checks SPR contents.",
200         POST_RAM | POST_ALWAYS,
201         &spr_post_test,
202         NULL,
203         NULL,
204         CONFIG_SYS_POST_SPR
205     },
206 #endif
207 #if CONFIG_POST & CONFIG_SYS_POST_SYSMON
208     {
209         "SYSMON test",
210         "sysmon",
211         "This test monitors system hardware.",
212         POST_RAM | POST_ALWAYS,
213         &sysmon_post_test,
214         &sysmon_init_f,
215         &sysmon_reloc,
216         CONFIG_SYS_POST_SYSMON
217     },
218 #endif
219 #if CONFIG_POST & CONFIG_SYS_POST_DSP
220     {
221         "DSP test",
222         "dsp",
223         "This test checks any connected DSP(s).",
224         POST_RAM | POST_ALWAYS,
225         &dsp_post_test,
226         NULL,
227         NULL,
228         CONFIG_SYS_POST_DSP
229     },
230 #endif
231 #if CONFIG_POST & CONFIG_SYS_POST_CODEC
232     {
233         "CODEC test",
234         "codec",
235         "This test checks any connected codec(s).",
236         POST_RAM | POST_MANUAL,
237         &codec_post_test,
238         NULL,
239         NULL,
240         CONFIG_SYS_POST_CODEC
241     },
242 #endif
243 #if CONFIG_POST & CONFIG_SYS_POST_ECC
244     {
245         "ECC test",
246         "ecc",
247         "This test checks the ECC facility of memory.",
248         POST_ROM | POST_ALWAYS | POST_PREREL,
249         &ecc_post_test,
250         NULL,
251         NULL,
252         CONFIG_SYS_POST_ECC
253     },
254 #endif
255 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC1
256         CONFIG_POST_BSPEC1,
257 #endif
258 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC2
259         CONFIG_POST_BSPEC2,
260 #endif
261 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC3
262         CONFIG_POST_BSPEC3,
263 #endif
264 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC4
265         CONFIG_POST_BSPEC4,
266 #endif
267 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC5
268         CONFIG_POST_BSPEC5,
269 #endif
270 #if CONFIG_POST & CONFIG_SYS_POST_COPROC
271     {
272         "Coprocessors communication test",
273         "coproc_com",
274         "This test checks communication with coprocessors.",
275         POST_RAM | POST_ALWAYS | POST_CRITICAL,
276         &coprocessor_post_test,
277         NULL,
278         NULL,
279         CONFIG_SYS_POST_COPROC
280     },
281 #endif
282 #if CONFIG_POST & CONFIG_SYS_POST_FLASH
283     {
284         "Parallel NOR flash test",
285         "flash",
286         "This test verifies parallel flash operations.",
287         POST_RAM | POST_SLOWTEST | POST_MANUAL,
288         &flash_post_test,
289         NULL,
290         NULL,
291         CONFIG_SYS_POST_FLASH
292     },
293 #endif
294 #if CONFIG_POST & CONFIG_SYS_POST_MEM_REGIONS
295     {
296         "Memory regions test",
297         "mem_regions",
298         "This test checks regularly placed regions of the RAM.",
299         POST_ROM | POST_SLOWTEST | POST_PREREL,
300         &memory_regions_post_test,
301         NULL,
302         NULL,
303         CONFIG_SYS_POST_MEM_REGIONS
304     },
305 #endif
306 };
307
308 unsigned int post_list_size = ARRAY_SIZE(post_list);