Skip to content
Snippets Groups Projects
diag.c 1.37 KiB
Newer Older
  • Learn to ignore specific revisions
  • // SPDX-License-Identifier: GPL-2.0+
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    /*
     * (C) Copyright 2002
     * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
     */
    
    /*
     * Diagnostics support
     */
    #include <common.h>
    #include <command.h>
    #include <post.h>
    
    
    int do_diag (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    {
    	unsigned int i;
    
    	if (argc == 1 || strcmp (argv[1], "run") != 0) {
    		/* List test info */
    		if (argc == 1) {
    
    			puts ("Available hardware tests:\n");
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    			post_info (NULL);
    
    			puts ("Use 'diag [<test1> [<test2> ...]]'"
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    					" to get more info.\n");
    
    			puts ("Use 'diag run [<test1> [<test2> ...]]'"
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    					" to run tests.\n");
    		} else {
    			for (i = 1; i < argc; i++) {
    			    if (post_info (argv[i]) != 0)
    				printf ("%s - no such test\n", argv[i]);
    			}
    		}
    	} else {
    		/* Run tests */
    		if (argc == 2) {
    			post_run (NULL, POST_RAM | POST_MANUAL);
    		} else {
    			for (i = 2; i < argc; i++) {
    			    if (post_run (argv[i], POST_RAM | POST_MANUAL) != 0)
    				printf ("%s - unable to execute the test\n",
    					argv[i]);
    			}
    		}
    	}
    
    	return 0;
    }
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    /***************************************************/
    
    
    	diag,	CONFIG_SYS_MAXARGS,	0,	do_diag,
    
    Peter Tyser's avatar
    Peter Tyser committed
    	"perform board diagnostics",
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	     "    - print list of available tests\n"
    	"diag [test1 [test2]]\n"
    	"         - print information about specified tests\n"
    	"diag run - run all available tests\n"
    	"diag run [test1 [test2]]\n"
    
    	"         - run specified tests"
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    );