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 ðer_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