1*7133d4c4Swdenk /* 2*7133d4c4Swdenk * (C) Copyright 2002 3*7133d4c4Swdenk * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 4*7133d4c4Swdenk * 5*7133d4c4Swdenk * See file CREDITS for list of people who contributed to this 6*7133d4c4Swdenk * project. 7*7133d4c4Swdenk * 8*7133d4c4Swdenk * This program is free software; you can redistribute it and/or 9*7133d4c4Swdenk * modify it under the terms of the GNU General Public License as 10*7133d4c4Swdenk * published by the Free Software Foundation; either version 2 of 11*7133d4c4Swdenk * the License, or (at your option) any later version. 12*7133d4c4Swdenk * 13*7133d4c4Swdenk * This program is distributed in the hope that it will be useful, 14*7133d4c4Swdenk * but WITHOUT ANY WARRANTY; without even the implied warranty of 15*7133d4c4Swdenk * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*7133d4c4Swdenk * GNU General Public License for more details. 17*7133d4c4Swdenk * 18*7133d4c4Swdenk * You should have received a copy of the GNU General Public License 19*7133d4c4Swdenk * along with this program; if not, write to the Free Software 20*7133d4c4Swdenk * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21*7133d4c4Swdenk * MA 02111-1307 USA 22*7133d4c4Swdenk */ 23*7133d4c4Swdenk #ifndef _POST_H 24*7133d4c4Swdenk #define _POST_H 25*7133d4c4Swdenk 26*7133d4c4Swdenk #ifndef __ASSEMBLY__ 27*7133d4c4Swdenk #include <common.h> 28*7133d4c4Swdenk #endif 29*7133d4c4Swdenk 30*7133d4c4Swdenk #ifdef CONFIG_POST 31*7133d4c4Swdenk 32*7133d4c4Swdenk #define POST_POWERON 0x01 /* test runs on power-on booting */ 33*7133d4c4Swdenk #define POST_POWERNORMAL 0x02 /* test runs on normal booting */ 34*7133d4c4Swdenk #define POST_POWERFAIL 0x04 /* test runs on power-fail booting */ 35*7133d4c4Swdenk #define POST_POWERTEST 0x08 /* test runs after watchdog reset */ 36*7133d4c4Swdenk 37*7133d4c4Swdenk #define POST_ROM 0x0100 /* test runs in ROM */ 38*7133d4c4Swdenk #define POST_RAM 0x0200 /* test runs in RAM */ 39*7133d4c4Swdenk #define POST_MANUAL 0x0400 /* test runs on diag command */ 40*7133d4c4Swdenk #define POST_REBOOT 0x0800 /* test may cause rebooting */ 41*7133d4c4Swdenk 42*7133d4c4Swdenk #define POST_MEM (POST_RAM | POST_ROM) 43*7133d4c4Swdenk #define POST_ALWAYS (POST_POWERNORMAL | \ 44*7133d4c4Swdenk POST_POWERFAIL | \ 45*7133d4c4Swdenk POST_MANUAL | \ 46*7133d4c4Swdenk POST_POWERON ) 47*7133d4c4Swdenk 48*7133d4c4Swdenk #ifndef __ASSEMBLY__ 49*7133d4c4Swdenk 50*7133d4c4Swdenk struct post_test { 51*7133d4c4Swdenk char *name; 52*7133d4c4Swdenk char *cmd; 53*7133d4c4Swdenk char *desc; 54*7133d4c4Swdenk int flags; 55*7133d4c4Swdenk int (*test) (int flags); 56*7133d4c4Swdenk }; 57*7133d4c4Swdenk void post_bootmode_init (void); 58*7133d4c4Swdenk int post_bootmode_get (unsigned int * last_test); 59*7133d4c4Swdenk void post_bootmode_clear (void); 60*7133d4c4Swdenk int post_run (char *name, int flags); 61*7133d4c4Swdenk int post_info (char *name); 62*7133d4c4Swdenk int post_log (char *format, ...); 63*7133d4c4Swdenk void post_reloc (void); 64*7133d4c4Swdenk 65*7133d4c4Swdenk extern struct post_test post_list[]; 66*7133d4c4Swdenk extern unsigned int post_list_size; 67*7133d4c4Swdenk 68*7133d4c4Swdenk #endif /* __ASSEMBLY__ */ 69*7133d4c4Swdenk 70*7133d4c4Swdenk #define CFG_POST_RTC 0x00000001 71*7133d4c4Swdenk #define CFG_POST_WATCHDOG 0x00000002 72*7133d4c4Swdenk #define CFG_POST_MEMORY 0x00000004 73*7133d4c4Swdenk #define CFG_POST_CPU 0x00000008 74*7133d4c4Swdenk #define CFG_POST_I2C 0x00000010 75*7133d4c4Swdenk #define CFG_POST_CACHE 0x00000020 76*7133d4c4Swdenk #define CFG_POST_UART 0x00000040 77*7133d4c4Swdenk #define CFG_POST_ETHER 0x00000080 78*7133d4c4Swdenk #define CFG_POST_SPI 0x00000100 79*7133d4c4Swdenk #define CFG_POST_USB 0x00000200 80*7133d4c4Swdenk #define CFG_POST_SPR 0x00000400 81*7133d4c4Swdenk 82*7133d4c4Swdenk #endif /* CONFIG_POST */ 83*7133d4c4Swdenk 84*7133d4c4Swdenk #endif /* _POST_H */ 85