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 ðer_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, 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, 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, 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); 321