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 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 47 extern int sysmon_init_f (void); 48 49 extern void sysmon_reloc (void); 50 51 52 struct post_test post_list[] = 53 { 54 #if CONFIG_POST & CFG_POST_CACHE 55 { 56 "Cache test", 57 "cache", 58 "This test verifies the CPU cache operation.", 59 POST_RAM | POST_ALWAYS, 60 &cache_post_test, 61 NULL, 62 NULL, 63 CFG_POST_CACHE 64 }, 65 #endif 66 #if CONFIG_POST & CFG_POST_WATCHDOG 67 { 68 "Watchdog timer test", 69 "watchdog", 70 "This test checks the watchdog timer.", 71 POST_RAM | POST_POWERON | POST_POWERFAIL | POST_MANUAL | POST_REBOOT, 72 &watchdog_post_test, 73 NULL, 74 NULL, 75 CFG_POST_WATCHDOG 76 }, 77 #endif 78 #if CONFIG_POST & CFG_POST_I2C 79 { 80 "I2C test", 81 "i2c", 82 "This test verifies the I2C operation.", 83 POST_RAM | POST_ALWAYS, 84 &i2c_post_test, 85 NULL, 86 NULL, 87 CFG_POST_I2C 88 }, 89 #endif 90 #if CONFIG_POST & CFG_POST_RTC 91 { 92 "RTC test", 93 "rtc", 94 "This test verifies the RTC operation.", 95 POST_RAM | POST_POWERFAIL | POST_MANUAL, 96 &rtc_post_test, 97 NULL, 98 NULL, 99 CFG_POST_RTC 100 }, 101 #endif 102 #if CONFIG_POST & CFG_POST_MEMORY 103 { 104 "Memory test", 105 "memory", 106 "This test checks RAM.", 107 POST_ROM | POST_POWERON | POST_POWERFAIL | POST_PREREL, 108 &memory_post_test, 109 NULL, 110 NULL, 111 CFG_POST_MEMORY 112 }, 113 #endif 114 #if CONFIG_POST & CFG_POST_CPU 115 { 116 "CPU test", 117 "cpu", 118 "This test verifies the arithmetic logic unit of" 119 " CPU.", 120 POST_RAM | POST_ALWAYS, 121 &cpu_post_test, 122 NULL, 123 NULL, 124 CFG_POST_CPU 125 }, 126 #endif 127 #if CONFIG_POST & CFG_POST_UART 128 { 129 "UART test", 130 "uart", 131 "This test verifies the UART operation.", 132 POST_RAM | POST_POWERFAIL | POST_MANUAL, 133 &uart_post_test, 134 NULL, 135 NULL, 136 CFG_POST_UART 137 }, 138 #endif 139 #if CONFIG_POST & CFG_POST_ETHER 140 { 141 "ETHERNET test", 142 "ethernet", 143 "This test verifies the ETHERNET operation.", 144 POST_RAM | POST_ALWAYS | POST_MANUAL, 145 ðer_post_test, 146 NULL, 147 NULL, 148 CFG_POST_ETHER 149 }, 150 #endif 151 #if CONFIG_POST & CFG_POST_SPI 152 { 153 "SPI test", 154 "spi", 155 "This test verifies the SPI operation.", 156 POST_RAM | POST_ALWAYS | POST_MANUAL, 157 &spi_post_test, 158 NULL, 159 NULL, 160 CFG_POST_SPI 161 }, 162 #endif 163 #if CONFIG_POST & CFG_POST_USB 164 { 165 "USB test", 166 "usb", 167 "This test verifies the USB operation.", 168 POST_RAM | POST_ALWAYS | POST_MANUAL, 169 &usb_post_test, 170 NULL, 171 NULL, 172 CFG_POST_USB 173 }, 174 #endif 175 #if CONFIG_POST & CFG_POST_SPR 176 { 177 "SPR test", 178 "spr", 179 "This test checks SPR contents.", 180 POST_ROM | POST_ALWAYS | POST_PREREL, 181 &spr_post_test, 182 NULL, 183 NULL, 184 CFG_POST_SPR 185 }, 186 #endif 187 #if CONFIG_POST & CFG_POST_SYSMON 188 { 189 "SYSMON test", 190 "sysmon", 191 "This test monitors system hardware.", 192 POST_RAM | POST_ALWAYS, 193 &sysmon_post_test, 194 &sysmon_init_f, 195 &sysmon_reloc, 196 CFG_POST_SYSMON 197 }, 198 #endif 199 }; 200 201 unsigned int post_list_size = sizeof (post_list) / sizeof (struct post_test); 202 203 #endif /* CONFIG_POST */ 204