1 /* 2 * (C) Copyright 2002 3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 4 * 5 * See file CREDITS for list of people who contributed to this 6 * project. 7 * 8 * This program is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU General Public License as 10 * published by the Free Software Foundation; either version 2 of 11 * the License, or (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21 * MA 02111-1307 USA 22 * 23 * Be sure to mark tests to be run before relocation as such with the 24 * CONFIG_SYS_POST_PREREL flag so that logging is done correctly if the 25 * logbuffer support is enabled. 26 */ 27 28 #include <common.h> 29 30 #include <post.h> 31 32 extern int ocm_post_test (int flags); 33 extern int cache_post_test (int flags); 34 extern int watchdog_post_test (int flags); 35 extern int i2c_post_test (int flags); 36 extern int rtc_post_test (int flags); 37 extern int memory_post_test (int flags); 38 extern int cpu_post_test (int flags); 39 extern int fpu_post_test (int flags); 40 extern int uart_post_test (int flags); 41 extern int ether_post_test (int flags); 42 extern int spi_post_test (int flags); 43 extern int usb_post_test (int flags); 44 extern int spr_post_test (int flags); 45 extern int sysmon_post_test (int flags); 46 extern int dsp_post_test (int flags); 47 extern int codec_post_test (int flags); 48 extern int ecc_post_test (int flags); 49 50 extern int dspic_init_post_test (int flags); 51 extern int dspic_post_test (int flags); 52 extern int gdc_post_test (int flags); 53 extern int fpga_post_test (int flags); 54 extern int lwmon5_watchdog_post_test(int flags); 55 extern int sysmon1_post_test(int flags); 56 extern int coprocessor_post_test(int flags); 57 58 extern int sysmon_init_f (void); 59 60 extern void sysmon_reloc (void); 61 62 63 struct post_test post_list[] = 64 { 65 #if CONFIG_POST & CONFIG_SYS_POST_OCM 66 { 67 "OCM test", 68 "ocm", 69 "This test checks on chip memory (OCM).", 70 POST_ROM | POST_ALWAYS | POST_PREREL | POST_CRITICAL | POST_STOP, 71 &ocm_post_test, 72 NULL, 73 NULL, 74 CONFIG_SYS_POST_OCM 75 }, 76 #endif 77 #if CONFIG_POST & CONFIG_SYS_POST_CACHE 78 { 79 "Cache test", 80 "cache", 81 "This test verifies the CPU cache operation.", 82 POST_RAM | POST_ALWAYS, 83 &cache_post_test, 84 NULL, 85 NULL, 86 CONFIG_SYS_POST_CACHE 87 }, 88 #endif 89 #if CONFIG_POST & CONFIG_SYS_POST_WATCHDOG 90 #if defined(CONFIG_POST_WATCHDOG) 91 CONFIG_POST_WATCHDOG, 92 #else 93 { 94 "Watchdog timer test", 95 "watchdog", 96 "This test checks the watchdog timer.", 97 POST_RAM | POST_POWERON | POST_SLOWTEST | POST_MANUAL | POST_REBOOT, 98 &watchdog_post_test, 99 NULL, 100 NULL, 101 CONFIG_SYS_POST_WATCHDOG 102 }, 103 #endif 104 #endif 105 #if CONFIG_POST & CONFIG_SYS_POST_I2C 106 { 107 "I2C test", 108 "i2c", 109 "This test verifies the I2C operation.", 110 POST_RAM | POST_ALWAYS, 111 &i2c_post_test, 112 NULL, 113 NULL, 114 CONFIG_SYS_POST_I2C 115 }, 116 #endif 117 #if CONFIG_POST & CONFIG_SYS_POST_RTC 118 { 119 "RTC test", 120 "rtc", 121 "This test verifies the RTC operation.", 122 POST_RAM | POST_SLOWTEST | POST_MANUAL, 123 &rtc_post_test, 124 NULL, 125 NULL, 126 CONFIG_SYS_POST_RTC 127 }, 128 #endif 129 #if CONFIG_POST & CONFIG_SYS_POST_MEMORY 130 { 131 "Memory test", 132 "memory", 133 "This test checks RAM.", 134 POST_ROM | POST_POWERON | POST_SLOWTEST | POST_PREREL, 135 &memory_post_test, 136 NULL, 137 NULL, 138 CONFIG_SYS_POST_MEMORY 139 }, 140 #endif 141 #if CONFIG_POST & CONFIG_SYS_POST_CPU 142 { 143 "CPU test", 144 "cpu", 145 "This test verifies the arithmetic logic unit of" 146 " CPU.", 147 POST_RAM | POST_ALWAYS, 148 &cpu_post_test, 149 NULL, 150 NULL, 151 CONFIG_SYS_POST_CPU 152 }, 153 #endif 154 #if CONFIG_POST & CONFIG_SYS_POST_FPU 155 { 156 "FPU test", 157 "fpu", 158 "This test verifies the arithmetic logic unit of" 159 " FPU.", 160 POST_RAM | POST_ALWAYS, 161 &fpu_post_test, 162 NULL, 163 NULL, 164 CONFIG_SYS_POST_FPU 165 }, 166 #endif 167 #if CONFIG_POST & CONFIG_SYS_POST_UART 168 { 169 "UART test", 170 "uart", 171 "This test verifies the UART operation.", 172 POST_RAM | POST_SLOWTEST | POST_MANUAL, 173 &uart_post_test, 174 NULL, 175 NULL, 176 CONFIG_SYS_POST_UART 177 }, 178 #endif 179 #if CONFIG_POST & CONFIG_SYS_POST_ETHER 180 { 181 "ETHERNET test", 182 "ethernet", 183 "This test verifies the ETHERNET operation.", 184 POST_RAM | POST_ALWAYS | POST_MANUAL, 185 ðer_post_test, 186 NULL, 187 NULL, 188 CONFIG_SYS_POST_ETHER 189 }, 190 #endif 191 #if CONFIG_POST & CONFIG_SYS_POST_SPI 192 { 193 "SPI test", 194 "spi", 195 "This test verifies the SPI operation.", 196 POST_RAM | POST_ALWAYS | POST_MANUAL, 197 &spi_post_test, 198 NULL, 199 NULL, 200 CONFIG_SYS_POST_SPI 201 }, 202 #endif 203 #if CONFIG_POST & CONFIG_SYS_POST_USB 204 { 205 "USB test", 206 "usb", 207 "This test verifies the USB operation.", 208 POST_RAM | POST_ALWAYS | POST_MANUAL, 209 &usb_post_test, 210 NULL, 211 NULL, 212 CONFIG_SYS_POST_USB 213 }, 214 #endif 215 #if CONFIG_POST & CONFIG_SYS_POST_SPR 216 { 217 "SPR test", 218 "spr", 219 "This test checks SPR contents.", 220 POST_RAM | POST_ALWAYS, 221 &spr_post_test, 222 NULL, 223 NULL, 224 CONFIG_SYS_POST_SPR 225 }, 226 #endif 227 #if CONFIG_POST & CONFIG_SYS_POST_SYSMON 228 { 229 "SYSMON test", 230 "sysmon", 231 "This test monitors system hardware.", 232 POST_RAM | POST_ALWAYS, 233 &sysmon_post_test, 234 &sysmon_init_f, 235 &sysmon_reloc, 236 CONFIG_SYS_POST_SYSMON 237 }, 238 #endif 239 #if CONFIG_POST & CONFIG_SYS_POST_DSP 240 { 241 "DSP test", 242 "dsp", 243 "This test checks any connected DSP(s).", 244 POST_RAM | POST_ALWAYS | POST_MANUAL, 245 &dsp_post_test, 246 NULL, 247 NULL, 248 CONFIG_SYS_POST_DSP 249 }, 250 #endif 251 #if CONFIG_POST & CONFIG_SYS_POST_CODEC 252 { 253 "CODEC test", 254 "codec", 255 "This test checks any connected codec(s).", 256 POST_RAM | POST_MANUAL, 257 &codec_post_test, 258 NULL, 259 NULL, 260 CONFIG_SYS_POST_CODEC 261 }, 262 #endif 263 #if CONFIG_POST & CONFIG_SYS_POST_ECC 264 { 265 "ECC test", 266 "ecc", 267 "This test checks the ECC facility of memory.", 268 POST_ROM | POST_ALWAYS | POST_PREREL, 269 &ecc_post_test, 270 NULL, 271 NULL, 272 CONFIG_SYS_POST_ECC 273 }, 274 #endif 275 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC1 276 CONFIG_POST_BSPEC1, 277 #endif 278 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC2 279 CONFIG_POST_BSPEC2, 280 #endif 281 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC3 282 CONFIG_POST_BSPEC3, 283 #endif 284 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC4 285 CONFIG_POST_BSPEC4, 286 #endif 287 #if CONFIG_POST & CONFIG_SYS_POST_BSPEC5 288 CONFIG_POST_BSPEC5, 289 #endif 290 #if CONFIG_POST & CONFIG_SYS_POST_COPROC 291 { 292 "Coprocessors communication test", 293 "coproc_com", 294 "This test checks communication with coprocessors.", 295 POST_RAM | POST_ALWAYS | POST_CRITICAL, 296 &coprocessor_post_test, 297 NULL, 298 NULL, 299 CONFIG_SYS_POST_COPROC 300 } 301 #endif 302 }; 303 304 unsigned int post_list_size = sizeof (post_list) / sizeof (struct post_test); 305