|  | /* | 
|  | * (C) Copyright 2002 | 
|  | * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | 
|  | * | 
|  | * See file CREDITS for list of people who contributed to this | 
|  | * project. | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU General Public License as | 
|  | * published by the Free Software Foundation; either version 2 of | 
|  | * the License, or (at your option) any later version. | 
|  | * | 
|  | * This program is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | * GNU General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU General Public License | 
|  | * along with this program; if not, write to the Free Software | 
|  | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 
|  | * MA 02111-1307 USA | 
|  | * | 
|  | * Be sure to mark tests to be run before relocation as such with the | 
|  | * CFG_POST_PREREL flag so that logging is done correctly if the | 
|  | * logbuffer support is enabled. | 
|  | */ | 
|  |  | 
|  | #include <common.h> | 
|  | #include <config.h> | 
|  | #ifdef CONFIG_POST | 
|  |  | 
|  | #include <post.h> | 
|  | #define CFG_POST_FLASH  0x00004000 | 
|  | #define CFG_POST_LED    0x00008000 | 
|  | #define CFG_POST_BUTTON 0x00010000 | 
|  |  | 
|  | extern int cache_post_test(int flags); | 
|  | extern int watchdog_post_test(int flags); | 
|  | extern int i2c_post_test(int flags); | 
|  | extern int rtc_post_test(int flags); | 
|  | extern int memory_post_test(int flags); | 
|  | extern int cpu_post_test(int flags); | 
|  | extern int uart_post_test(int flags); | 
|  | extern int ether_post_test(int flags); | 
|  | extern int spi_post_test(int flags); | 
|  | extern int usb_post_test(int flags); | 
|  | extern int spr_post_test(int flags); | 
|  | extern int sysmon_post_test(int flags); | 
|  | extern int dsp_post_test(int flags); | 
|  | extern int codec_post_test(int flags); | 
|  |  | 
|  | extern int sysmon_init_f(void); | 
|  |  | 
|  | extern void sysmon_reloc(void); | 
|  |  | 
|  | extern int flash_post_test(int flags); | 
|  | extern int led_post_test(int flags); | 
|  | extern int button_post_test(int flags); | 
|  |  | 
|  | struct post_test post_list[] = { | 
|  | #if CONFIG_POST & CFG_POST_CACHE | 
|  | { | 
|  | "Cache test", | 
|  | "cache", | 
|  | "This test verifies the CPU cache operation.", | 
|  | POST_RAM | POST_ALWAYS, | 
|  | &cache_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_CACHE}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_WATCHDOG | 
|  | { | 
|  | "Watchdog timer test", | 
|  | "watchdog", | 
|  | "This test checks the watchdog timer.", | 
|  | POST_RAM | POST_POWERON | POST_SLOWTEST | POST_MANUAL | POST_REBOOT, | 
|  | &watchdog_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_WATCHDOG}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_I2C | 
|  | { | 
|  | "I2C test", | 
|  | "i2c", | 
|  | "This test verifies the I2C operation.", | 
|  | POST_RAM | POST_ALWAYS, | 
|  | &i2c_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_I2C}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_RTC | 
|  | { | 
|  | "RTC test", | 
|  | "rtc", | 
|  | "This test verifies the RTC operation.", | 
|  | POST_RAM | POST_SLOWTEST | POST_MANUAL, | 
|  | &rtc_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_RTC}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_MEMORY | 
|  | { | 
|  | "Memory test", | 
|  | "memory", | 
|  | "This test checks RAM.", | 
|  | POST_ROM | POST_POWERON | POST_SLOWTEST | POST_PREREL, | 
|  | &memory_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_MEMORY}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_CPU | 
|  | { | 
|  | "CPU test", | 
|  | "cpu", | 
|  | "This test verifies the arithmetic logic unit of" " CPU.", | 
|  | POST_RAM | POST_ALWAYS, | 
|  | &cpu_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_CPU}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_UART | 
|  | { | 
|  | "UART test", | 
|  | "uart", | 
|  | "This test verifies the UART operation.", | 
|  | POST_RAM | POST_SLOWTEST | POST_MANUAL, | 
|  | &uart_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_UART}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_ETHER | 
|  | { | 
|  | "ETHERNET test", | 
|  | "ethernet", | 
|  | "This test verifies the ETHERNET operation.", | 
|  | POST_RAM | POST_ALWAYS | POST_MANUAL, | 
|  | ðer_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_ETHER}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_SPI | 
|  | { | 
|  | "SPI test", | 
|  | "spi", | 
|  | "This test verifies the SPI operation.", | 
|  | POST_RAM | POST_ALWAYS | POST_MANUAL, | 
|  | &spi_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_SPI}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_USB | 
|  | { | 
|  | "USB test", | 
|  | "usb", | 
|  | "This test verifies the USB operation.", | 
|  | POST_RAM | POST_ALWAYS | POST_MANUAL, | 
|  | &usb_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_USB}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_SPR | 
|  | { | 
|  | "SPR test", | 
|  | "spr", | 
|  | "This test checks SPR contents.", | 
|  | POST_ROM | POST_ALWAYS | POST_PREREL, | 
|  | &spr_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_SPR}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_SYSMON | 
|  | { | 
|  | "SYSMON test", | 
|  | "sysmon", | 
|  | "This test monitors system hardware.", | 
|  | POST_RAM | POST_ALWAYS, | 
|  | &sysmon_post_test, | 
|  | &sysmon_init_f, | 
|  | &sysmon_reloc, | 
|  | CFG_POST_SYSMON}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_DSP | 
|  | { | 
|  | "DSP test", | 
|  | "dsp", | 
|  | "This test checks any connected DSP(s).", | 
|  | POST_RAM | POST_MANUAL, | 
|  | &dsp_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_DSP}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_CODEC | 
|  | { | 
|  | "CODEC test", | 
|  | "codec", | 
|  | "This test checks any connected codec(s).", | 
|  | POST_RAM | POST_MANUAL, | 
|  | &codec_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_CODEC}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_FLASH | 
|  | { | 
|  | "FLASH test", | 
|  | "flash", | 
|  | "This test checks flash.", | 
|  | POST_RAM | POST_ALWAYS | POST_MANUAL, | 
|  | &flash_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_FLASH}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_LED | 
|  | { | 
|  | "LED test", | 
|  | "LED", | 
|  | "This test checks LED ", | 
|  | POST_RAM | POST_ALWAYS | POST_MANUAL, | 
|  | &led_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_LED}, | 
|  | #endif | 
|  | #if CONFIG_POST & CFG_POST_BUTTON | 
|  | { | 
|  | "Button test", | 
|  | "button", | 
|  | "This test checks Button ", | 
|  | POST_RAM | POST_ALWAYS | POST_MANUAL, | 
|  | &button_post_test, | 
|  | NULL, | 
|  | NULL, | 
|  | CFG_POST_BUTTON}, | 
|  | #endif | 
|  |  | 
|  | }; | 
|  |  | 
|  | unsigned int post_list_size = sizeof(post_list) / sizeof(struct post_test); | 
|  |  | 
|  | #endif				/* CONFIG_POST */ |