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 * CFG_POST_PREREL flag so that logging is done correctly if the 25 * logbuffer support is enabled. 26 */ 27 28 #include <common.h> 29 30 #ifdef CONFIG_POST 31 32 #include <post.h> 33 34 extern int cache_post_test (int flags); 35 extern int watchdog_post_test (int flags); 36 extern int i2c_post_test (int flags); 37 extern int rtc_post_test (int flags); 38 extern int memory_post_test (int flags); 39 extern int cpu_post_test (int flags); 40 extern int fpu_post_test (int flags); 41 extern int uart_post_test (int flags); 42 extern int ether_post_test (int flags); 43 extern int spi_post_test (int flags); 44 extern int usb_post_test (int flags); 45 extern int spr_post_test (int flags); 46 extern int sysmon_post_test (int flags); 47 extern int dsp_post_test (int flags); 48 extern int codec_post_test (int flags); 49 50 extern int sysmon_init_f (void); 51 52 extern void sysmon_reloc (void); 53 54 55 struct post_test post_list[] = 56 { 57 #if CONFIG_POST & CFG_POST_CACHE 58 { 59 "Cache test", 60 "cache", 61 "This test verifies the CPU cache operation.", 62 POST_RAM | POST_ALWAYS, 63 &cache_post_test, 64 NULL, 65 NULL, 66 CFG_POST_CACHE 67 }, 68 #endif 69 #if CONFIG_POST & CFG_POST_WATCHDOG 70 { 71 "Watchdog timer test", 72 "watchdog", 73 "This test checks the watchdog timer.", 74 POST_RAM | POST_POWERON | POST_SLOWTEST | POST_MANUAL | POST_REBOOT, 75 &watchdog_post_test, 76 NULL, 77 NULL, 78 CFG_POST_WATCHDOG 79 }, 80 #endif 81 #if CONFIG_POST & CFG_POST_I2C 82 { 83 "I2C test", 84 "i2c", 85 "This test verifies the I2C operation.", 86 POST_RAM | POST_ALWAYS, 87 &i2c_post_test, 88 NULL, 89 NULL, 90 CFG_POST_I2C 91 }, 92 #endif 93 #if CONFIG_POST & CFG_POST_RTC 94 { 95 "RTC test", 96 "rtc", 97 "This test verifies the RTC operation.", 98 POST_RAM | POST_SLOWTEST | POST_MANUAL, 99 &rtc_post_test, 100 NULL, 101 NULL, 102 CFG_POST_RTC 103 }, 104 #endif 105 #if CONFIG_POST & CFG_POST_MEMORY 106 { 107 "Memory test", 108 "memory", 109 "This test checks RAM.", 110 POST_ROM | POST_POWERON | POST_SLOWTEST | POST_PREREL, 111 &memory_post_test, 112 NULL, 113 NULL, 114 CFG_POST_MEMORY 115 }, 116 #endif 117 #if CONFIG_POST & CFG_POST_CPU 118 { 119 "CPU test", 120 "cpu", 121 "This test verifies the arithmetic logic unit of" 122 " CPU.", 123 POST_RAM | POST_ALWAYS, 124 &cpu_post_test, 125 NULL, 126 NULL, 127 CFG_POST_CPU 128 }, 129 #endif 130 #if CONFIG_POST & CFG_POST_FPU 131 { 132 "FPU test", 133 "fpu", 134 "This test verifies the arithmetic logic unit of" 135 " FPU.", 136 POST_RAM | POST_ALWAYS, 137 &fpu_post_test, 138 NULL, 139 NULL, 140 CFG_POST_FPU 141 }, 142 #endif 143 #if CONFIG_POST & CFG_POST_UART 144 { 145 "UART test", 146 "uart", 147 "This test verifies the UART operation.", 148 POST_RAM | POST_SLOWTEST | POST_MANUAL, 149 &uart_post_test, 150 NULL, 151 NULL, 152 CFG_POST_UART 153 }, 154 #endif 155 #if CONFIG_POST & CFG_POST_ETHER 156 { 157 "ETHERNET test", 158 "ethernet", 159 "This test verifies the ETHERNET operation.", 160 POST_RAM | POST_ALWAYS | POST_MANUAL, 161 ðer_post_test, 162 NULL, 163 NULL, 164 CFG_POST_ETHER 165 }, 166 #endif 167 #if CONFIG_POST & CFG_POST_SPI 168 { 169 "SPI test", 170 "spi", 171 "This test verifies the SPI operation.", 172 POST_RAM | POST_ALWAYS | POST_MANUAL, 173 &spi_post_test, 174 NULL, 175 NULL, 176 CFG_POST_SPI 177 }, 178 #endif 179 #if CONFIG_POST & CFG_POST_USB 180 { 181 "USB test", 182 "usb", 183 "This test verifies the USB operation.", 184 POST_RAM | POST_ALWAYS | POST_MANUAL, 185 &usb_post_test, 186 NULL, 187 NULL, 188 CFG_POST_USB 189 }, 190 #endif 191 #if CONFIG_POST & CFG_POST_SPR 192 { 193 "SPR test", 194 "spr", 195 "This test checks SPR contents.", 196 POST_ROM | POST_ALWAYS | POST_PREREL, 197 &spr_post_test, 198 NULL, 199 NULL, 200 CFG_POST_SPR 201 }, 202 #endif 203 #if CONFIG_POST & CFG_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 CFG_POST_SYSMON 213 }, 214 #endif 215 #if CONFIG_POST & CFG_POST_DSP 216 { 217 "DSP test", 218 "dsp", 219 "This test checks any connected DSP(s).", 220 POST_RAM | POST_MANUAL, 221 &dsp_post_test, 222 NULL, 223 NULL, 224 CFG_POST_DSP 225 }, 226 #endif 227 #if CONFIG_POST & CFG_POST_DSP 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 CFG_POST_CODEC 237 }, 238 #endif 239 }; 240 241 unsigned int post_list_size = sizeof (post_list) / sizeof (struct post_test); 242 243 #endif /* CONFIG_POST */ 244